0

以下のように2つの入力チェックボックスがあります。

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

そのうちの少なくとも 1 つをチェックしたいと思います。そのために、以下のように jquery 検証プラグイン コードを追加しました。

 $.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

検証プラグインを使用してこれを実行したいことはわかっていますが、手動で実行したい場合に備えて、この方法を使用できます。

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 に答える