それなりに複雑なwebシステムを作る際に利用する事が多々ある処理です。本日は「jQueryでsubmitを一時停止した後に再開する」についてです。
こんにちは。猫ITソリューションズ広報の齊藤メイ(♀)です。本日は、「jQueryでsubmitを一時停止した後に再開する」についてです。
なお、本記事作成にあたりまして以下サイトを参考にさせていただきました。貴重な情報の提供に感謝します。
jQueryでフォームの送信を一旦止め、処理を挟んでから送信する方法 – モンキーレンチ
サンプル
キモはform.off( 'submit' );で、submitイベントをキャンセルして再度イベントを発生させている点です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//■mainという名前のフォームが送信したら実行 var form = $('form[name=main]'); form.submit( function( e ) { //ここで何か処理を行う //3秒遅れで発生したsubmitイベントを消してからsubmit setTimeout( function() { form.off( 'submit' ); form.submit(); }, 3000); //自動でsubmitされないように処理を止める return false; } ); |
もっとも本当のキモは「//ここで何か処理を行う」の内容なのですが。
例えば元々送信するデータに追加を行ったり、実は裏でajax非同期通信によるDB問い合わせを行って処理の正当性を確認したり、、、などが、よくある(?)処理です。
具体例を上げた方が良かったかもしれませんが弊社の具体例は具体的すぎて生々しいので割愛させていただきます。