0

こんにちは今私は解決策を数時間探します。20個のフィールド(ドロップダウン)があり、「はい」と「いいえ」の回答があります。ここで、ユーザーが20の「はい」のうち3つを言わなければならないことを検証したいと思います。これが20からのものであるかどうかは関係ありません。

たとえば、20個のドロップダウンの1つ...

<select name="dd1" id="dd1">
<option value="yes">Yes</option>
<option value="no" selected="selected">No</option>
</select>

誰かが解決策のアイデアを持っていますか?

検証には、たとえば次の形式を使用します。

 $(document).ready(function(){

    $("#register").validate({

        rules: {

            surname: {
                required: true,
                minlength: 3
            },

            messages: {
            surname: {
                required: "xxx",
                minlength: "xxx"
            },
            errorPlacement: function (error, element) {
             if ( element.is(":checkbox") )
             error.appendTo(element.parent("td").next("td"));
             else if ( element.is(":radio") )
             error.appendTo(element.parent("td").next("td"));
             else
             error.appendTo( element.parent());
            }

    });

  });
4

2 に答える 2

2
if ( $('select.my20drops[value="yes"]').length > 3 ) {
    // do something!
}
于 2013-03-24T00:08:49.833 に答える
2

@adeneo のセレクターを修正中...

$('select.mydrops option[value="yes"]:selected')

次に、プラグインのaddMethodメソッドを使用して、カスタム ルールを作成しました。

動作デモ: http://jsfiddle.net/UBhce/

$(document).ready(function () {

    $.validator.addMethod('customrule', function(value, element, param) {
        return ( $('select.mydrops option[value="yes"]:selected').length >= param ); 
    }, "please select 'yes' to at least {0} items");

    $('#myform').validate({ // initialize the plugin
        groups: {
            whatever: "dd1 dd2 dd3 dd4"  // grouping all messages into one
        }
    });

    $('.mydrops').each(function() { // apply rule to all selects at once
        $(this).rules('add', {
            customrule: 3  // using a parameter for number of required selects
        });
    });

});

class="mydrops"また、すべてのselect要素に追加し、すべてidの とnamesが一意であることを確認しました。

<select name="dd1" id="dd1" class="mydrops">
    <option value="yes">Yes</option>
    <option value="no" selected="selected">No</option>
</select>
于 2013-03-24T03:19:01.077 に答える