目前,我有两个单选按钮,每个按钮的值都代表帐户持有人的数量。即:
<INPUT id="ONE_HOLDER" name=NR_OF_HOLDERS value=1 type=radio />
<LABEL for=ONE_HOLDER>One holder</LABEL>
<br />
<INPUT id="TWO_HOLDERS" name=NR_OF_HOLDERS value=2 type=radio />
<LABEL for=TWO_HOLDERS>Two holders</LABEL>
我想在每次选择一个单选按钮时验证,所以我使用Jquery验证器执行以下操作:
//Validations fix for radio and checkbox checks
$('input[type="radio"],input[type="checkbox"]').change(function(){
$("#YOUR_ACC").validate().element(this);
});
这叫
$('#YOUR_ACC').validate({ ... });
反过来运行我的自定义验证器方法,如下所示:
$.validator.addMethod("numberOfHolders", function(value, element) {
try {
nrOfHolders = value;
alert("The value is " + nrOfHolders);
if(nrOfHolders == 1) { return true; }
else if(nrOfHolders == 2){ return false; }
}
catch(err) {
return false;
}
});
它贯穿它和所有,但问题是,当我选择第一个单选按钮,这是需要选择的那个按钮,它保持该值(1)即使我选择了第二个单选按钮。
为什么会这样,我该如何解决?
请参阅下面的回答。
答案 0 :(得分:1)
中似乎是值
addMethod("numberOfHolders", function(value, element) { });
不接受单选按钮的值。 我通过使用element参数获取正确的元素(确保更加动态),然后像在常规 jQuery方法中那样获取已检查单选按钮的值来实现它:
var element_name = $(element).attr('name');
value = $('input:radio[name="'+element_name +'"]:checked').val();