2017-02-20 6 views
0

私は午後全体にわたってこれを把握しており、これをデバッグできないようです。問題は、私は、ページのハードリフレッシュ(ドキュメントの準備ができたら)私のカスタム非同期バリデータが2回実行されますが、サーバーに1回だけ投稿することです。カスタムParsley.js非同期バリデーターループ2回

window.Parsley.addAsyncValidator('emailvalidation', function (data) { 
    console.log("Runs"); 

    var myResponseText = data.responseText; 
    var obj = jQuery.parseJSON(myResponseText); 

    valid = (obj.result == 1); 
    return valid; 
}, '/check.do?action=userEmailAvailable&ajax=1'); 

基本的には、コンソールで二回つもり印刷Runsだが、それは、サーバーのポストを繰り返すつもりはありません。ループするたびに、もう1つのエラーメッセージ(重複)も表示されます。これはリンクからページに来ると発生しません(smoothStateとajax DOM挿入を使用してドキュメントの準備ができなくなります)。送信フォームはページの一番下にあり、ドキュメントの準備ができていませんし、別の.jsファイルにあるバリデータも(ドキュメントの準備ができていません)。この問題は、このカスタムバリデーター(ajaxの唯一のバリデーターでもあります)でのみ発生します。

敬具

答えて

1

今のソースをチェックする時間がないが、それはバリデータが一度リクエストごと以上実行されます完全に可能です。特に、Ajaxリクエストはキャッシュされます....

これは問題ではありません。あなたのコードは、ajaxレスポンスから最終結果(有効です)への変換であり、複数回実行する必要はありません。影響を与える。

関連する問題