問題タブ [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.
javascript - 二重送信を防ぐために、送信時にjavascriptを使用してフォームを無効にする
二重提出を防ぐために、提出後にフォームを無効にしたいのですが。かなり標準的なユースケースだと思いますが、そこにあるすべての例に欠陥があります。
私が見つけることができるものはすべて、送信ボタンを無効にすることに基づいていますが、これは、ユーザーがフォームのEnterキーを押した場合に、フォームが再送信されるのを妨げるものではありません。これは、かなり一般的なアプローチです。
これを説明するために既存のスクリプトの1つを変更することを考えていますが、車輪の再発明を行う前に、これを適切に処理して共有できるスクリプトを知っている人はいますか?まだ何も出ていないようで、本当にびっくりしました。
jquery - 無効化された jQuery UI ボタンがページに戻っても無効のままになる
ダブルクリックを防ぎ、実際に適切にクリックされたことを明確にするために、クリックされたときにフォームに JQuery UI 送信ボタンがあります。
だから私はjQueryを使ってこれを行います:
動作しますが、問題は、ユーザーが戻るボタンを押したときに無効のままになることです。クリックしたときに送信ボタンを無効にする適切な方法は何ですか? 私は明らかに jQuery を使用しているので、好みは jQuery を使用することです。
更新:多くの人が$(document).ready(function() {$('input:submit').button('enable');});
、この永続的なボタンの無効化を克服するために使用することを提案しました。ボタンの初期化呼び出しの前に来ると、うまくいかないことがわかりました$(function() {}
。$(function() {})
しかし、セクション内であっても、ボタンの初期化コードの後にそのボタン('enable') を配置すると
しかし今、このボタン全体を無効にする機能は Firefox でしか機能しないことに気付きました! ボタンを無効にすると、IE と Chrome でフォームが送信されません (他はテストしていません)。
更新 2 : 一部のブラウザーがこれらの回避策を使用して送信できないことを少し心配していましたが、ようやくこれが機能するようになりました...これが私の最終的なコードです。潜在的な問題の意見を聞きたいです:
javascript - JavascriptでRails link_to_remoteの複数の送信を防ぐ
Rails プロジェクトでは、link_to_remote がダブルクリックされないようにする必要があります。:before と :after が私の唯一の選択肢のようです - それらはそれぞれ onclick Ajax 呼び出しの先頭/末尾に追加されます。しかし、次のようなことを試してみると:
Ajax が実行されることはありません。試してみると、Ajaxが実行された後でも、リンクの監視が停止することはありません。
私が見た解決策は、変数を作成してフォーム全体をブロックすることに依存していますが、このページには複数の link_to_remote 行があり、一度に複数の行をクリックすることは有効です。同じ行を 2 回クリックすることはできません。link_to_remote の外で宣言された行ごとに 1 つの変数は非常に厄介なようです...
Prototype を使用する代わりに、この概念実証のためにプレーンな Javascript を最初に試しましたが、失敗しました。
<a href="#" onclick="self.onclick = function(){alert('foo');};">クリック</a>
クリックされたときにアラートを表示するだけです-ここのラムダは何もしませんか? この次の目標は、望ましい目標に近いものであり、初回のみ警告する必要があります。しかし、代わりに毎回警告します:
<a href="#" onclick="alert('bar'); self.onclick = function(){return false;};">クリック</a>
すべてのアイデアに感謝します!
asp.net-mvc-3 - ASP.NET MVC - jquery.validate.unobtrusive libでダブルクリック送信を防ぐ方法は?
ダブルクリックの送信動作を避ける必要があります。目立たないライブラリでクライアント検証を使用しています。ダブルクリックを回避するための次のコードがあります。
残念ながら、フォームに有効なフィールド (必須フィールドなど) が含まれている場合、上記のコードは引き続き実行されるため、フォームの間違いを修正しても、再度送信することはできません。
検証が正常に完了した後、ダブルクリック コードを起動するにはどうすればよいですか?
gwt - GWTアプリケーションでDoubleSubmitを防ぐ方法は?
二重送信とは何かを明確にする: ユーザーが送信ボタンを 2 回クリックすると、サーバーは同じ POST データを 2 回処理します。これを回避するために (1 回の送信後にボタンを無効にすることは別として)、Struts などのほとんどの Web フレームワークはトークン メカニズムを提供します。GWTでこれに相当するものを探しています。
web-applications - 二重提出問題の解決
Web開発者が二重提出の問題をどのように回避するかを知りたいです。したがって、基本的に問題の私の理解は次のとおりです。
せっかちなユーザーがフォームを複数回送信すると、二重送信が発生し、問題が発生します。この問題は、フォームが送信されると送信ボタンを無効にするJavaScript(特にjQueryスクリプト)によって修正できます。これの弱点は、クライアントでJavaScriptが無効になっている場合です。
サーバー側の検出方法もあります。
だから私の質問は:
人々はどのようにして二重提出を克服しますか?二重提出によって引き起こされる問題の実際の例は何ですか?Webアプリケーションフレームワークには二重送信ツールが組み込まれていますか?
javascript - ユーザーが新しいページへのリダイレクトを中断した場合、無効な送信ボタンは無効のままになります
JavaScriptを使用して押された後に送信ボタンを無効にしたいと思います。
myForm.onsubmit = function() { ... mySubmitButton.disabled = true; ... }
ただし、現在のページがまだ生きている間にユーザーが新しいページを開くのをやめると、ボタンは無効のままになります。
サーバーからのコンテンツがファイルの場合も同じ結果になります (この場合、新しいページへのリダイレクトはありません)。
ブラウザが新しい URL をロードして mySubmitButton を再度有効にすることを「望んでいない」かどうかを判断する方法はありますか?
javascript - この関数が x ミリ秒で 2 回以上実行されるのを防ぐ方法は?
スクロールの一番下に到達したときに、これが 2 回実行されるのを防ぐにはどうすればよいですか?
私が見るオプション:
var loading_already == false を設定してみましたが、次のようなものです:
どこ
しかし、うまくいきませんでした。これに関する提案はありますか?
ありがとう!
asp.net-mvc-3 - ajax-送信時のダブルクリックを防止します
ユーザーがajaxパーシャルビューであるサインアップフォームの送信ボタンをダブルクリックしないようにするにはどうすればよいですか?
これはすでに尋ねられていたので、私は尋ねることを残念に思います。どこを検索しても、明確に機能する答えが見つかりません。ボタンを無効にすると、送信できなくなります。var javascript clickcount + alert+return_falseを使用してもリセットされません。
環境:asp.net mvc3
表示:
フォームにオンロードが表示されます:@RenderPage("_SignupForm.cshtml")
使用して提出:
コントロールの送信:<input type="submit" value="Sign up" />
SignupController:
php - PHPを更新するときに二重送信
スクリプトの二重送信の問題を修正しようとしています。送信を押すと、mysqlは1回だけ更新されます(これが私が望むものです)。ただし、更新を押すと、mysqlが再度更新されます。更新ボタンを押すと、ifステートメントは無視されるようです。これを止めるために私は何をしますか
これが私のコードです