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

Javascript jQuery validate()用于具有相同名称、不同值的单选按钮,javascript,jquery,jquery-validate,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

如果我有这个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>
。。。如何基于单选按钮的值为真进行验证

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

myForm.validate({
rules: 
    AcknowledgeLSA : {
        required: true,
        depends: function() { return $('[name="AcknowledgeLSA"]').is(':checked').val() === "True";}
    }
}
});
我认为您需要在此处使用:

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

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

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

我说的是DOM节点的value属性被设置为字符串True,而不是仅仅需要的单选按钮。是的,我尝试了,尽管我认为这取决于何时需要require:True和get Uncaught TypeError:Cannot read属性“call”of undefined。检查元素AcknowledgesA时发生异常,请检查'Dependes'方法。忘记不能像这样检查单选按钮的值。更新了答案。看看它现在是否工作。我认为这是在做它所说的,当它满足depend条件时,它将使字段成为必需的,但这里的问题是,如果它的值为True,它将始终满足必需的条件。我想知道是否有其他方法可以替代required,比如valueMustBe,因此您可以检查实际值是什么,并将该检查用作验证的来源?您可以为其创建自定义规则。再次更新答案!
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'
       }
};