10

私はいくつかのチェックボックスを取り、これらのチェックボックスの少なくとも 1 つが jQuery 検証を使用してチェックされていることを確認しようとしています。今まで運がなかった。私は何が欠けていますか?チェックボックスではなく、他のフィールドで機能するため、検証がそこにあることを知っています。jfiddleにコードを掲載しました。これが役立つかもしれません。

編集: 入力 name=list パラメータ (list[]) に括弧を追加しました。また、私のルールでは、name パラメーターを list から 'list[]' に変更しました。私の古いコードは以下です。ありがとうスパーキー!

OLD: <input type='checkbox' name='list' id='fullProduct'></input>

FIXED: <input type='checkbox' name='list[]' id='fullProduct'></input>

これが私のコードです。

$("#tradeForm").validate({
        rules: {
            startDate: {
                required: true,
                date: true
            },
            endDate: {
                required: true,
                date: true
            },
            showName: {
                required: true,
                minlength: 5
            },
            location: {
                required: true
            },
            list: {
                required: true
            }
        },
        messages: {
            startDate: "*",
            endDate: "*"
    }
});

                <table>
                <tr>
                    <th>Name of Show</th>
                    <td> <input type='text' name='showName'></input></td>
                </tr>
                <tr>
                    <th>Location</th>
                    <td><input type='text' name='location'></input></td>
                </tr>
                <tr>
                    <th><span style='padding-right: 50px;'>Select Literature</span></th>
                    <td><input type='checkbox' name='list' id='fullProduct'></input><span style='font-size: 12px;'>Guide One</span></td>
                    <td><input type='checkbox' name='list' id='oilProduct'></input><span style='font-size: 12px;'>Guide Two</span></td>
                </tr>                               
                <tr>                                
                    <td></td>                       
                    <td><input type='checkbox' name='list' id='diamondProduct'></input><span style='font-size: 12px;'>Guide Three</span></td>
                    <td><input type='checkbox' name='list' id='motorProduct'></input><span style='font-size: 12px;'>Guide Four</span></td>
                </tr>                               
            </table>
4

2 に答える 2

22

nameチェックボックス グループの はではlist[]なくlistであるため、そのようにルールを宣言する必要があります。括弧が含まれて[]いるため、引用符で囲む必要があります

rules: {
    'list[]': {
        required: true
    }
},

あなたの jsFiddle: http://jsfiddle.net/ZDz59/1/

于 2013-02-19T20:42:59.720 に答える
2

チェックボックスの 1 つだけを常にオンにする場合は、代わりにinput type="radio"を使用します。

そうでない場合: チェックボックスの name 属性をlist[]に変更してみてください。複数のチェック値が存在する可能性があるため、配列であることを示すために括弧を含める必要があります。そうしないと、値が上書きされます。

于 2013-02-19T20:14:43.050 に答える