POSTリクエストを使用して状態を各コントローラーアクションに渡すマルチステップフォームがあります。
新規>プレビュー>チェックアウト>作成
プレビューとチェックアウトはPOSTリクエストであり、データベースに影響を与えないため、フォームの再送信は問題ありません。
私は探しています:
1. Javascript検証を実行するためにデフォルトの送信を禁止する
2.検証後、フォームを送信し、ブラウザを前後に許可します
送信イベントをリッスンしているときに、e.preventDefault()を試してからe.submit()を試してみましたが、ブラウザのボタンを使用するときにフォームを再送信することはできません。
しかしながら、 エラーがスローされた場合、フォームが送信され、ブラウザの前後ボタンを使用できるようになります。
エラーをスローせずにこの機能を取得するにはどうすればよいですか?
$("#new_post").on("submit", function(e) {
throw new Error();
// this allows for form submission and back and forth button functionality
}
回答:
回答№1は1ちょうど preventDefault() 方法
HTML
<form name="form" onsubmit="validate();">
スクリプト
function validate()
{
if (!validation) { // If the form is not correct
event.preventDefault();
} else {
// Submit the form
}
}