0

現在表示されているフィールドセットのみを検証する 4 ステップのフォームを作成しています。各「ステップ」には送信ボタンがあるため、次の行に沿って何かを期待していました。

$('#step-1-button').on('click', function(e){
    $('#step-1-fieldset').validationEngine('validate', {
    onValidationComplete: function(form, status){
        if(status){ goToNextStep() });
    }
});

どんな助けでも大歓迎です!

4

3 に答える 3

2

validationEngineプラグインがどのように機能するか正確にはわかりませんが、ドキュメントを簡単に読むと、個々の要素で「検証」アクションを呼び出すことができ、jquerys Filterメソッドを使用できる可視フィールドセットのみを検証できることが示唆されています.

私は次のようなことを言うでしょう

$('#step-1-button').on('click',function(e) {
       e.preventDefault(); 
       var inputs = $('fieldset').filter(':visible').find('input');
       $.each(inputs,function() { 
            $(this).validationEngine('validate');
       });
});

動作します。

どのボタンがクリックされたかに関係なく、表示可能なフィールドセットでフィルタリングしているため、イベントを汎用セレクター ($('.step-button') など) にアタッチすることもできます。これにより、別のイベント ハンドラーを作成する必要がなくなります。 4 ステップ フォームの各ボタンは、コードを DRY に保つのに役立ちます。

于 2013-03-06T10:40:09.503 に答える
0

フォームの一部のみを検証する別の方法は、「required」などのクラスをプログラムで追加および削除することです。次に、「.required」フィールドで検証を実行します。フォームの 4 つのステップをタブで移動しながら、すべての要素から必要なものを取り除き、検証が必要な可視要素にのみ再適用します。jquery 検証プラグインの優れた点は、DOM が変更されるたびに再実行する必要がないことです。必要なフィールドと不要なフィールドが更新されると、それらが自動的に追跡されます。

于 2013-03-06T15:46:04.563 に答える
0

あなたの場合、バリデーション付きのステップフォームを使用することは悪くないと思います。ajaxもサポートしています。
Step 1,2,3.. と同様 + Validation ここにあなたが望む
デモがあります

于 2013-06-04T15:03:00.250 に答える