如何在Formassembly中设置条件字段中的电子邮件字段

问题描述

我们正在使用Formassembly创建我们的表单,当前我们有一个供内部和外部用户使用的表单。表格中有一个复选框,用于区分内部和外部用户。我需要代码来检查“内部” 复选框是否被选中,如果“内部” 复选框被选中,则电子邮件字段必须为可选,否则电子邮件字段需要。我认为可以通过Javascript来实现,或者请告知是否还有其他方法。我对编码一无所知,但尝试在线查找并尝试编码,但是它不起作用。请帮忙。

<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>

<script>


{

//#tfa_78 is the checkBox

 

 
  if($("#tfa_78").is(":checked"))  { 

//#tfa_1 is the email field
 
    this.getField("#tfa_1").required = false;

    }

  else 
  {

    this.getField("#tfa_1").required = true;

  }

  });

});

</script>

解决方法

您可以在复选框上使用属性onblur来触发JS函数,以检查其状态,然后需要或不需要您的电子邮件输入。 每次复选框失去焦点(因此每次更改或单击)时,都会触发onblur


<input id="tfa_78" type="checkbox" onblur="mailRequired(this.checked)"></input>
<input id="tfa_1" type="mail"></input>


<script>
function mailRequired(checked) {
    if (checked) {
        document.getElementByID('tfa_1').required = true;
    } else {
        document.getElementByID('tfa_1').required = false;
    }
}
</script>

,

由于有了JQuery,我们可以解决以下问题

$(document).ready(function() {

//#tfa_78 is the checkbox

  $("#tfa_78").change(function(){

 
  if($("#tfa_78").is(":checked"))  { 
//#tfa_1 is the email field
    $("#tfa_1").attr("placeholder","Optional Email");
    $("#tfa_1").attr("required",false)

    }

  else 
  {
    $("#tfa_1").attr("placeholder","Requierd Email");
    $("#tfa_1").attr("required",true)

  }

  });

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="tfa_78" /> Local User
<br />
<input type="email" id="tfa_1" required placeholder="Requierd" />

,

我设法使其工作。这是我的代码。但是,如果未选中该复选框,如果我需要它工作怎么办?会是$(“#tfa_78”)。is(“:checked == false”)吗?


<script>


$(document).ready(function() {

//#tfa_78 is the checkbox

  $("#tfa_78").change(function(){
  $("#tfa_78").is(":checked")  
  $('#tfa_1').addClass('required')
  });

});

</script>