jQuery validate()用于具有相同名称,不同值的单选按钮

时间:2017-10-23 21:00:59

标签: javascript jquery jquery-validate

如果我有这个HTML:

<div class="form-group radioInput">
  <label class="radio-inline">
    <input checked="checked" name="AcknowledgeLSA" type="radio" value="False"> No
  </label>
  <label class="radio-inline">
    <inputname="AcknowledgeLSA" type="radio" value="True"> Yes
  </label>
</div>

这个psuedo-JS(显然不起作用):

myForm.validate({
    rules: {
        AcknowledgeLSA:checked : {required: value="True"}
    }
});        

...我怎样才能根据单选按钮的值进行验证&#34; True&#34;?

我需要更改JS而不是HTML。如果选择了具有True值的单选按钮,则表单有效。表单无效是选中其他False单选按钮。

2 个答案:

答案 0 :(得分:1)

我认为你需要在这里使用depends

myForm.validate({
    rules: {
        AcknowledgeLSA: {
            required: true,
            depends: function() { 
                         var rbtn = $("input[name='AcknowledgeLSA']:checked");
                         return typeof rbtn !== 'undefined' && rbtn.val() == "True";
                }
        }
    }
});

编辑:您可以创建如下自定义规则:

jQuery.validator.addMethod("hasValue", function(value, element, param) {
    return value == param;
}, 'Invalid!');

myForm.validate({
    rules: {
        AcknowledgeLSA: {
            hasValue: 'True'
       }
};

答案 1 :(得分:0)

myForm.validate({
rules: 
    AcknowledgeLSA : {
        required: true,
        depends: function() { return $('[name="AcknowledgeLSA"]').is(':checked').val() === "True";}
    }
}
});

vanilla js