1

フォームの検証にhttp://bassistance.de/jquery-plugins/jquery-plugin-validation/を使用しています。

私のフォームはさまざまなタブに分かれています。

最後のタブは、フォーム送信ボタンがある場所です。現在、検証チェックは機能しているように見えますが、検証は常に完了できないフィールドに戻ります。

送信ボタンの上にエラーメッセージを出力して、ユーザーに問題のタブに戻ってフィールドに入力するように伝えます。

これが私が使用しているコードです

var errcontainer = $('.errcontainer');
$("#application-submit").click(function() {
        $("#application-form").validate({
        debug: true,
        rules: {
            student_lastname: "required"
        },
        errorContainer: errcontainer,
        errorLabelContainer: $("ol", errcontainer),
        wrapper: 'li',
        meta: "validate"
    });
});

http://jsfiddle.net/F2HNh/

タブを無効にするとエラーメッセージが出力されますが、タブを有効にすると何も表示されません。

助言がありますか?

ありがとう。

4

2 に答える 2

0

他のjQueryプラグインと同じように、DOM対応で初期化します。.validate()クリックハンドラーの内部に配置する必要はありません。送信ボタンのクリックでフォームの有効性をテストしたいだけの場合は、デフォルトですでにテストされています。

$(document).ready(function() {
    $("#application-form").validate({
        debug: true, // <-- this will block a real submission
        rules: {
            student_lastname: "required"
        },
        errorContainer: errcontainer, // <-- errcontainer not defined or a valid selector.
        errorLabelContainer: $("ol", errcontainer), // <-- errcontainer not defined or a valid selector.
        wrapper: 'li',
        meta: "validate"  // <-- this is not a documented option
    });
});

あなたが何を意図していたのかわかりませんmeta: "validate"...それは文書化されたオプションではありません

また、errorContainer:errorLabelContainer:オプションは無効です。 ドキュメントと例によるとerrorLabelContainer:は「オプションとして渡されたセレクターによって指定されたerrorContainerとおり」です。 errcontainerは有効なセレクターではなく、定義済みの変数でもありません。

と同じことはerrorLabelContainer:$("ol", errcontainer)有効なセレクターではありません。

これらのオプションは両方とも、定義したとおり、プラグインがエラーで失敗する原因になります:http: //jsfiddle.net/5JRNV/

最初の無効なフィールドに焦点を合わせたくない場合は、focusInvalid: falseオプションを使用してください。

$(document).ready(function() {
    $("#application-form").validate({
        focusInvalid: false,
        rules: {
            student_lastname: "required"
        },
        // other options.
    });
});

標準デモ: http: //jsfiddle.net/5G5PT/

于 2013-02-26T00:26:48.190 に答える
0

空の配列で無視オプションを渡してみてください

$('form').validate({
 // your other options    
 ignore:[]
});

タブを有効にする前にエラー メッセージがerrorLabelContainerに表示され、その後は表示されない場合は、エラーが非表示のフィールドにあり、デフォルトでは検証されていないことが原因である可能性があります。

于 2013-02-26T12:54:30.760 に答える