0

コードを機能させるのに問題があります。ユーザーはさらに入力ボックスを追加できますが、それらすべてを検証する必要があります。奇妙なことに、これはメッセージ部分を削除すると機能することです。

$("input.ing").each(function(){
    $(this).rules("add", {
        required: true,
        messages: {
            required: "Input a number"
        }
    });         
});

何か案は?

前もって感謝します

樹脂

編集:必要なことを実行するこのjsFiddleを見つけましたが、コードをドキュメントにコピーすると、機能しません!:( http://jsfiddle.net/jYwJE/

4

1 に答える 1

1

OP の引用: 「ユーザーはさらに入力ボックスを追加できますが、それらすべてを検証する必要があります。」

次のコードは、jsFiddle よりも具体的です。ユーザーがボタンをクリックすると、という名前の新しいフィールドnewfieldがフォームに追加され、ルールがこの新しいフィールドに動的に追加されることが示されています。

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            field1: {
                required: true,
                minlength: 5
            },
            field2: {
                required: true,
                minlength: 5
            }
        }
    });

    $('button#add').one('click', function () {
        var field = '<input type="text" name="newfield" /><br />';
        $('#myform').prepend(field);
        $('[name="newfield"]').rules("add", {
            required: true,
            messages: {
                required: "this new field is now required"
            }
        });
    });

});

デモ: http://jsfiddle.net/km6XE/

デモでは、新しいフィールドを1 つ追加する方法のみを示します。inputユーザーがさらに要素を追加できるようにする場合は、コードで新しい要素ごとに一意inputの要素を作成する必要があります。そうしないと、Validate プラグインが壊れます。 nameinput

于 2013-02-07T16:41:02.227 に答える