2

私は Jquery Validation Engine http://posabsolute.github.com/jQuery-Validation-Engine/を使用しています。フォームが有効であることが判明したら、非表示の読み込み gif を明らかにしたいだけです。

すなわち

  • ユーザーがフォームを送信

  • フォームが有効な場合: $('#lulus-loading-div').show();

私はこれを試しましたが、運がありません:

onSuccess() コールバック関数を実装する運がないようです。

私はそれが問題なく動作することを疑いません。残念ながら、私は正しい構文について無知であり、ドキュメントで運がありませんでした:/

現時点で私は持っています:

jQuery(document).ready(function(){
        jQuery("#model-form").validationEngine({

           onSuccess: function(){
              $('#lulus-loading-div').show();
           });
        });

 });

これは、単一のフィールドが最初に検証されるときに onSuccess() を呼び出します。その後、不完全なフォームを送信しようとすると、エラーのフラグを立てずに送信されます。

どんな助けや提案も大歓迎です:)

詳細が必要な場合はお知らせください。

4

3 に答える 3

1

onSuccess のバグは Git でも報告されています。以下は、 https : //github.com/posabsolute/jQuery-Validation-Engine/issues/554 から取得したスニペットの回避策です。

$("#my_form").validationEngine('attach', { 
    onValidationComplete: function(form, status){ // when validate is on and the form scan is completed
        if (status == true) { // equiv to success everythings is OK
            // we disable the default from action to make our own action like alert or other function
            form.on('submit', function(e) {
                e.preventDefault();
            });

            // your function or your action

            alert("Successful! Now submitting");
            return true;
        } else {
            // we disable the default from action to make our own action like alert or other function
            form.on('submit', function(e) {
                e.preventDefault();
            });

            // your function or your action

            alert("Errors! Stopping Here");
        }
    },
    promptPosition : "topLeft", 
    scroll: false
});

希望、それは誰かを助けます!!!

于 2014-01-14T18:36:39.100 に答える
1

検証エンジンには、そのようなタスクを達成するための (機能する) ものは何もありません。

フォームがページの再読み込みを使用すると仮定しますが、ajax ベースの再読み込みなしの送信でも機能するはずです。

ある時、私はそのようなものが必要になり、まさにそれを行うクイック&ダーティ ハックを書きました。

バージョン2.5.2を使用しています

このコードを見つけます (240 ~ 250 行あたり)

form.trigger("jqv.form.result", [errorFound]);

このコードを追加する直前に:

if (options.jpAfterSuccessValidation && !errorFound) {
    options.jpAfterSuccessValidation();
}

一番下、デフォルトでは、「fadeDuration」に追加(後に追加)

フェード期間: 0.3,
jpAfterSuccessValidation: false //すべてのフィールドが有効な場合、コールバックを起動します

次のように使用します。

jQuery("#model-form").validationEngine({
    jpAfterSuccessValidation: 関数(){
    $('#lulus-loading-div').show(); //これにより、情報ダイアログが表示されます
    }
});

「lulus-loading-div」は、フォームを保持しているページがリロードされる (そしてフォームが送信される) まで表示されたままになります。

于 2012-10-23T01:29:05.807 に答える
0

「迅速でクリーンな解決策は、次のようにすることです。

$("#new_user").validationEngine("attach", {
  promptPosition: "topLeft",
  onFieldSuccess: function() {
    alert("rakoto");
  }
});

希望が役立ちます。;)

于 2014-01-13T15:13:55.413 に答える