来自Radio按钮的Jquery Validation插件依赖性不起作用

时间:2016-12-18 23:07:40

标签: javascript jquery html jquery-validate

只有在另一个输入(无线电)中检查某些选项时,才需要输入一些输入。简而言之,如果选择了Type 1文档,我需要输入类型1字段编号。通过下面的jsfiddle可以更容易地进行可视化: https://jsfiddle.net/kbhatd51/2/

你能帮帮我吗?提前致谢

<form id="registerform" method="post">
  <div class="form-group">
    <label >Type of Document</label><br>
    <input type="radio" class="radioForm" id="fis" name="tipop" value="0" > <label for="fis"> Type 1</label><br>
    <input type="radio" class="radioForm" id="jur" name="tipop" value="1" > <label for="jur"> Type 2</label><br>
  </div> 
  <label for="tipop"> Number</label>
  <div class="form-group">
    <fieldset id="cpf1">

      <label for=cpf1>Type 1 No.:</label>
      <input type="number" class="form-control"  placeholder="000.000.000-00" name="cpf" id="cpf" >
    </fieldset>

    <fieldset id="cnpj1">
      <label for=cnpj1> Type 2 No.:
        <input type="number" class="form-control"  placeholder=" 00.000.000/0001-00" name="cnpj" id="cnpj"></label>
    </fieldset>
  </div>
  <input name="submit" type="submit" value="Submit!"> 
</form>

JS验证:

$("#registerform").validate({
  rules: {
    cpf: {
      required: "#fis:checked"
    },
    cnpj: {
      required: "#jur:checked"
    }
  }
});

1 个答案:

答案 0 :(得分:0)

required方法需要返回true以获取所需的字段。 因此,您只需将函数传递给required即可检查radio元素是否为checked

  

required method

     

必需(依赖回调)

     

类型:功能()

     

使用元素作为唯一参数执行该函数:如果它返回 true ,则该元素是必需的。

$("#registerform").validate({
  debug: true,
  rules: {
    cpf: {
      required: function(elem) {
        return $('#fis').is(":checked")
      }
    },
    cnpj: {
      required: function(elem) {
        return $('#jur').is(":checked")
      }
    }
  }
});

在这里查看-- JSFiddle Example --