問題タブ [double-submit-prevention]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - javascript/jQuery 二重送信防止メソッドは、html5 属性 (例: Required、Pattern など) の開始を無効にします。
私が使用するjavascript/jQueryの二重送信防止方法は次のとおりです。
したがって、submitclick
では、フォームは送信Submit Button
されます。disabled
したがって、フォームの二重送信は発生しません。しかし。現在の問題は、html5 属性が開始されないことです (例: Required、Pattern など)。
これを修正する方法について誰かアイデアがありますか?
または、html5 属性を改ざんしない代替の二重送信防止方法を提案できますか?
編集 + ダニエル・パッツ 回答:
jquery - ダブルクリックを防ぐためにクリック後に HTML ボタンを無効にする
ダブルクリックを防ぎたいので、クリックイベントdisabled
で要素に属性を設定するinput
のは正しいことのようです。そして、他のスタックオーバーフローの回答はそれを反映しています。だから、これは私がjQueryを使ってCoffeeScriptで書いたものです:
私はaddClass('disabled')
財団のために持っています。
通常、これは機能します。ただし、クリックして戻ると、ボタンは無効のままです。ページに移動してページがキャッシュされた場合、ボタンは無効のままです。これらすべての小さな問題を処理する JavaScript ライブラリはありますか? これは非常に一般的なニーズのようです。上記に追加する必要がある JavaScript/jQuery がもう少しありますか?
私は、HTML5 にはこのための何らかのメカニズムがあると思っていたでしょう。
更新: イベントをリッスンし、pageshow
送信ボタンを無効にしようとしました:
ただし、ページが最初に読み込まれたときでも、何も起こりません。私はpageshow
間違って使用していますか?
jsf - 二重送信防止のための Pure Java/JSF 実装
私たちは WebSphere v8.5 で JSF 2.0 を使用し、いくつかのコンポーネント ライブラリ PrimeFaces 4.0、Tomahawk 2.0、RichFaces などを使用しています。
ページが更新されたとき、または送信ボタンがもう一度クリックされたときに、フォームの再送信を回避するための一般的なメカニズムを探しています。さまざまなシナリオを持つ多くのアプリケーションがあります。
今のところ、JavaScript の inonclick
属性を使用してボタンを無効にすることを検討しましたが、満足のいくものではありません。この目的のために、 Struts2 のような純粋な Java 実装を探しています<s:token>
。
python - ダブルフォーム送信
Django 1.6 アプリを使用していますが、二重送信の問題に直面しています。リダイレクト、トークンなど、ここに広がるアイデアを使用できます (JS 防止を取得しましたが、信頼していません) が、送信後に API に別の要求を行う必要があります。外部 API リクエストには 20 秒かかるため、送信ボタンを操作する時間は十分にあります。
私が今得た最善の解決策は、DBにCSRF(または他の一意のトークン)を保存し、そのトークンが存在するかどうかを確認し、存在する場合はリクエストを「殺す」ことです。
しかし、それが問題です。リクエストを殺してもいいですか?API呼び出しを行う最初の/元のリクエストよりも速くブラウザに配信されるため、500、404で応答できません。Djangoでリクエストを強制終了/ドロップ/保留する方法はありますか? ひょっとして、この考えはヤバいかも?あなたの知識を共有してください。
私の英語が理解できることを願っています。
form-submit - Enterキーでフォームの送信を停止するには?
フォームを送信したくありません。
テキストボックスでEnterキーを押すと、フォームが送信され、自動的にリロードされます。
フォームの送信を停止するには?
私のコードは.
jsp - Struts 2 で応答ページを取得中に URL を変更する方法
ここでStrutsとHibernateを使用して登録を行っていますが、プロジェクトを実行したときに発生するような問題に直面しています
データを送信すると、データはデータベースに正常に保存され、データベースにデータを保存した後、 registration.jsp
応答ページとして探していますが、その時のURLは
これにより、ページを更新すると最後に追加されたレコードが再度追加されるなどの問題が発生します
JSP フォーム:
struts.xml
: