使用复选框时jquery验证有问题

时间:2013-08-06 17:56:06

标签: jquery-validate

我正在尝试使用jquery validate来验证表单,我希望用户选择至少1个复选框。具有不同名称的原因是它们与数据库字段名称匹配。

....
<input class="myclass" type="checkbox" name="option_1">Option 1<br>
<input class="myclass" type="checkbox" name="option_2">Option 2<br>
<input class="myclass" type="checkbox" name="option_3">Option 3<br>
<input class="myclass" type="checkbox" name="option_4">Option 4<br>
<input class="myclass" type="checkbox" name="option_5">Option 5<br>
....

这是我用于验证的jQuery代码:

jQuery.validator.addMethod("require_from_group", function(value, element, options) {
    var valid = $(options[1], element.form).filter(function() {
        return $(this).val(); 
    }).length >= options[0];

    if(!$(element).data('reval')) {
        var fields = $(options[1], element.form);
        fields.data('reval', true).valid();
        fields.data('reval', false);
    }
    return valid;
}, jQuery.format("Please fill out at least {0} of these fields."));


$("#formname").validate({
    submitHandler: function(form){
        console.log("Came here");
        return false;
    },
    rules:{
        option_1:{ require_from_group: [1, '.myclass']},
        option_2:{ require_from_group: [1, '.myclass']},
        option_3:{ require_from_group: [1, '.myclass']},
        option_4:{ require_from_group: [1, '.myclass']},
        option_5:{ require_from_group: [1, '.myclass']}
    }
});

此代码无效。我哪里错了?

1 个答案:

答案 0 :(得分:0)

.validate()代码或HTML标记中看不到任何错误。但我没有检查你的require_from_group方法,因为你不需要从头开始编写。

AFAIK,最新版本的插件(1.11.1)修复了此方法中的错误。您只需要包含the additional-methods.js file,它应该按预期工作。