1

已编辑,见下文

我现在有两个单选按钮,每个按钮都有一个代表帐户持有人数量的值。IE:

<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)。

为什么会这样,我该如何解决?

编辑解决方案

请参阅下面的回复中的答案。

4

1 回答 1

1

我的解决方案

看起来很有价值

addMethod("numberOfHolders", function(value, element) { });

不采用单选按钮的值。我通过使用 element 参数获取正确的元素(确保更动态),然后像在常规jQuery 方法中一样获取选中的单选按钮的值,使其工作:

var element_name = $(element).attr('name');
value = $('input:radio[name="'+element_name +'"]:checked').val();
于 2012-12-03T09:29:52.170 回答