0

我有两个输入复选框,如下所示:

<input type="checkbox" value="1" name="items[test1]" id="items_test1">
<input type="checkbox" value="1" name="items[test2]" id="items_test2">

我希望至少检查其中一个。为此,我添加了 jquery validate 插件代码,如下所示:

 $.validator.addMethod("checkTest", function(value) {
    return false; // return false just to check whether it triggers error
}, 'Please check atleast one');

 $(document).ready(function() {
     $("form").validate({
         groups: {
            checkTest: 'items[test1] items[test2]'
         },
         errorPlacement: function(error, element) {
              console.log(error);
     });
 });

永远不会触发此检查。我究竟做错了什么?

4

2 回答 2

0

我知道您想使用 validate 插件来执行此操作,但是以防万一您想手动进行,则可以使用此方法。

HTML

<form>
    Checkbox 1: <input type="checkbox" value="1" name="items[test1]" id="items_test1">
    <br>
    Checkbox 2: <input type="checkbox" value="1" name="items[test2]" id="items_test2">

    <br>
    <input type='submit' value='Submit' />
</form>

JS

$(document).ready(function() {
    $(document).on('submit', 'form', function() {
        if($('#items_test1').is(':checked') || $('#items_test2').is(':checked')) {
             alert('done. valid form submission.');   
        } else {
             alert('invalid form submission, check atleast one checkbox.');   
        }
        return false; 
    });
})

您可以在此处的 jsfiddle上找到它。

于 2013-01-29T07:55:59.743 回答
0

您已设置组,但尚未在复选框中添加任何验证规则。我会使用插件附加方法文件中的 require_from_group 方法。在准备好的文件中:

// add a class to the checkboxes in the group, here I have added to all
$('[type=checkbox]').addClass('test_checkboxes');

// set up a rule for the class
$.validator.addClassRules("test_checkboxes", {
    require_from_group: [1, ".test_checkboxes"]
});

$("form").validate({
    groups: {
        checkTest: 'items[test1] items[test2]'
    }
});

在这里摆弄

于 2013-01-29T08:08:42.143 回答