1

ajaxを介してクライアント側のjs検証を行っているフォームがあります。名前、メール、メッセージの 3 つのフィールドを持つシンプルな送信メール (連絡先) フォームです。適切な検証なしで送信をクリックしようとすると、エラー メッセージの div が表示されます。これら 3 つの入力のそれぞれが、onblur を介して js 関数を呼び出します。適切な入力をして送信を 1 回クリックしようとすると、機能しません。もう一度クリックすると機能します。

onblur 検証関数が処理してから送信するように、そのフィールドからフォーカスを外す必要があるのはなぜですか。これは、一般的な問題のようです。Submit は、3 つのフィールドを検証するために ajax 呼び出しを行う php スクリプトを呼び出し、正しい場合は、「成功」メッセージを表示しながら電子メールを送信します。

このダブルクリックの送信ボタンを停止する方法はありますか??

これは長くなりすぎると思われるため、コードを提供しませんでしたが、助けを求めて.. 3 つのフィールドは、悪い場合は false を返し、良い場合は true を返します。php スクリプトは、空の場合は 2 つのフィールドをチェックし、email フィールドは正規表現で正しくフォーマットされている場合。その場合はメール機能を使用し、「成功」を div に出力します。

4

3 に答える 3

0

問題を解決しました。Onblur は間違いなく問題でした。onblur を onkeyup に変更すると、各キーを押すたびにすべてが再検証されるため、[送信] をクリックしようとすると、入力クライアント側が既に検証されており、サーバー側スクリプトがすぐに実行されます。
皆様のご意見をお寄せいただきありがとうございます。

于 2013-08-02T19:45:36.080 に答える
0

あなたが使用することができます

$(document).ajaxComplete(function(){
                form.submit();     
                });

ajaxリクエストが完了するまで待機します。

于 2013-11-16T12:34:35.387 に答える