送信時に、フォームを送信する前に追加の処理を行う必要があるフォームがあります。デフォルトのフォーム送信動作を防止してから、追加の処理 (基本的には Google Maps API を呼び出し、フォームにいくつかの非表示フィールドを追加する) を行うことができます。その後、フォームを送信する必要があります。
「デフォルトを防止」し、後で「デフォルトを継続」する方法はありますか?
送信時に、フォームを送信する前に追加の処理を行う必要があるフォームがあります。デフォルトのフォーム送信動作を防止してから、追加の処理 (基本的には Google Maps API を呼び出し、フォームにいくつかの非表示フィールドを追加する) を行うことができます。その後、フォームを送信する必要があります。
「デフォルトを防止」し、後で「デフォルトを継続」する方法はありますか?
使用するjQuery.one()
要素のイベントにハンドラーをアタッチします。ハンドラは、イベント タイプごとに要素ごとに最大 1 回実行されます
$('form').one('submit', function(e) {
e.preventDefault();
// do your things ...
// and when you done:
$(this).submit();
});
このカスタムイベントは最初の送信後に切り離さone
れるため、無限ループも防止します。submit
イベントをフォームにバインドし、.submit()
返す前にやりたいことを行う (true) 場合、これらのことは実際の送信の前に発生します。
例えば:
$('form').submit(function(){
alert('I do something before the actual submission');
return true;
});
jquery.com の別の例: http://api.jquery.com/submit/#entry-examples
私はただやります:
$('#submiteButtonID').click(function(e){
e.preventDefault();
//do your stuff.
$('#formId').submit();
});
フォームを送信するだけの場合は、preventDefault
最初に呼び出し て後で関数を使用しますsubmit()
この方法を使用して、JS で無限ループを実行します。より良い方法を行うには、次を使用できます
var on_submit_function = function(evt){
evt.preventDefault(); //The form wouln't be submitted Yet.
(...yourcode...)
$(this).off('submit', on_submit_function); //It will remove this handle and will submit the form again if it's all ok.
$(this).submit();
}
$('form').on('submit', on_submit_function); //Registering on submit.
それが役立つことを願っています!ありがとう!
e.preventDefault()
現在の操作を停止する which を使用できます。
あなたができるよりも$("#form").submit();
$('#form').submit(function (e)
{
return !!e.submit;
});
if(blabla...)
{...
}
else
{
$('#form').submit(
{
submit: true
});
}