如果使用 jQuery 验证器插件选择了单选按钮按钮,则将不同的 addMethod 应用于字段

Apply different addMethod to a field if radio button button seelcted using jQuery validator plugin

如果选择了某个单选按钮值,我需要将不同的 addMethod 应用于单个字段。

如果选择单选按钮值 = true,则应将附加方法 X 应用于该字段,如果选择单选按钮值 = false,则应将附加方法 Y 应用于同一字段。

我尝试在单个 addMethod 中使用条件语句来完成此操作,但无法为每个实例显示唯一的错误消息。

$.validator.addMethod("RegistrationNumber", function (value, element) { 
  if($("#radio-1").is(":checked")) {
   //opt 1              
  } else {
   //opt 2
  }  
}, "message");

<input type="radio" name="reg" id="radio-1" value="true"/> true
<input type="radio" name="reg" id="radio-2" value="false"/> false
<input type="text" name="RegistrationNumber"/>

我在这里有哪些选择?我做错了什么?

我想你可以有 2 个不同的规则,并使用 depends

根据检查状态启用它
$.validator.addMethod("RegistrationNumberX", function (value, element) {
    //return true/false based on validation
    return false;
}, "messageX");
$.validator.addMethod("RegistrationNumberY", function (value, element) {
    //return true/false based on validation
    return false;
}, "messageY");

然后

something: {
    RegistrationNumberX: {
        depends: function () {
            return $("#radio").is(":checked")
        }
    },
    RegistrationNumberY: {
        depends: function () {
            return !$("#radio").is(":checked")
        }
    }

}

演示:Fiddle

//下面的代码检查你的单选按钮是否有像 'yourRadioName' 这样的名字 //是否检查

$(document).ready(function() {
  if($("input:radio[name='yourRadioName']").is(":checked")) {
      //its checked
  }
  else
  {

  }
});