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

jQuery validate() for radio buttons with same name, different values

如果我有这个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(显然行不通):

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

...如何根据单选按钮的值为 "True" 进行验证?

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

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

https://jqueryvalidation.org/validate/#rules

我认为你需要在这里使用 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'
       }
};