フォームでページを戻る動作をなんとかしたい時の処理
フォームでデータを送信した後に戻るボタンを押したり、前のページへ戻られると以前の入力データが残っていたり、再度フォームのデータが送信されるような処理がされたりしてチョット困ります。
そんな時にフォームを送信する直前のページに jQuery を記述して、このページに戻ってこられた時に強制的にフォームの始まりのページへ移動させる処理を追加します。
イベントを受けるのに jQuery を利用しているだけなので、頑張れば javascript のみでも記述できます。
■スクリプト
$(window).on(“popstate”, function(e) {
var state = e.originalEvent.state;
if(state == ‘goSendmail’) { location.href = location.href.split(‘?’)[0]; }
return false;
});
$(‘#form-submit’).on(‘submit’, function() {
history.pushState(‘goSendmail’, null, location.href.split(‘?’)[0]);
});
|
とりあえずはこれである程度対応できると思います。
history.pushState の処理ができないとエラーになるので、対応ブラウザはそれなりに新しいブラウザのみになります。