せっかちなユーザーが送信ボタンを何度もクリックするため、データベースに重複したエントリが入り続けます。
グーグルで何度も検索していくつかのスクリプトを見つけましたが、どれも十分ではないようです。
JavaScript または jQuery を使用して、これらの重複エントリの発生を防ぐにはどうすればよいですか?
よろしくお願いします!
ベストアンサー1
送信ボタンを無効にするのはどうでしょうか? 私はそうしています。問題なく動作します。
$('form').submit(function(){
$('input[type=submit]', this).attr('disabled', 'disabled');
});
免責事項:
これは、ユーザーのブラウザで JavaScript が有効になっている場合にのみ機能します。送信されるデータが重要な場合 (クレジットカード購入など)、私のソリューションは防御の第一線としてのみ考慮してください。ただし、多くのユースケースでは、送信ボタンを無効にすることで十分な予防策が提供されます。
まず、この JavaScript のみのソリューションを実装します。次に、重複レコードがいくつ作成されているかを追跡します。ゼロ (または気にしないほど低い) であれば、これで完了です。高すぎる場合は、既存のレコードのバックエンド データベース チェックを実装します。