【问题标题】:How to make an email field conditionally required in Formassembly如何在Formassembly中有条件地要求电子邮件字段
【发布时间】:2020-10-21 08:07:37
【问题描述】:

我们正在使用 Formassembly 创建表单,目前我们有一个供内部和外部用户使用的表单。表单中有一个复选框,用于区分内部和外部用户。我需要代码来检查是否勾选了 "Internal" 复选框,如果勾选了 "Internal" 复选框,则电子邮件字段必须是可选的,否则电子邮件字段需要需要。我认为它可以通过 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>

【问题讨论】:

    标签: javascript conditional-statements required


    【解决方案1】:

    由于有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(":unchecked")??
    • 欢迎您。是的,它工作正常吗?有没有发现什么问题!?如果我的答案是正确的,请检查它是否正确。
    • 效果很好。我没有问题。我已经将您的答案标记为有用。如果未勾选复选框,请告诉我语法吗?
    • 我认为 [stackoverflow.com/questions/11440128/… 会帮助你。
    • 我试过 if($("#tfa_78").not(":checked")) 它不工作:(
    【解决方案2】:

    我设法让它工作。这是我的代码。但是,如果未勾选复选框,我需要它工作怎么办?会是 $("#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>
    

    【讨论】:

      【解决方案3】:

      您可以使用复选框上的属性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>
      
      

      【讨论】:

      • 非常感谢您的及时帮助!我无法让它在 Formassembly 上工作。
      猜你喜欢
      • 1970-01-01
      • 2023-02-21
      • 2011-04-15
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 2013-10-13
      • 1970-01-01
      相关资源
      最近更新 更多