送信ボタンのjquery click()
フォームの送信ボタンに.click()関数があります:
$("#submitId").click(function () {
$('#hiddenInput').val(someVariable);
});
それは魅力のように機能します。送信ボタンがクリックされると、click()関数が非表示の入力変数を埋めてから、フォーム全体が送信されます。サーバーは、更新されたコンテンツを含む非表示の入力を受け取ります。
私の質問は次のとおりです。常に機能しますか?何らかの理由でまだ知られていないが、最初に送信操作が実行され、後でclick()関数が実行される危険性はありますか?非表示の入力が常に更新されるようにします。
フォームを使用する場合は、alwaysを使用してsubmit
ボタンを実行することをお勧めします。フォームの送信イベントをトリガー ...次に、submit
ボタンのform
イベントではなく、click
のsubmit
イベントをリッスンします。
event.preventDefault()
を使用して、フォームのデフォルトの送信を禁止し、いくつかのハウスキーピングを実行してから、フォームを送信できます。
$("#submitId").closest('form').on('submit', function(event) {
event.preventDefault();
$('#hiddenInput').val(someVariable); //perform some operations
this.submit(); //now submit the form
});
または単に、
$('form').on('submit', function(event) {
event.preventDefault();
$('#hiddenInput').val(someVariable); //perform some operations
this.submit(); //now submit the form
});
このように、値の更新をフォームの送信ハンドラに直接添付するのが最善です
$("#submitId").closest("form").submit(function () {
$('#hiddenInput').val(someVariable);
});
個人的には、送信を禁止し、必要な入力値を設定してから、プログラムでフォームを送信する方が安全だと思います。お気に入り:
$("form").submit(function (e) {
e.preventDefault();
$('#hiddenInput').val(someVariable);
$(this).submit();
});