JQuery フォームの送信で問題が発生しましたが、どこにも答えがありません。誰かがこれに光を当てることができれば、それは高く評価されます。
問題: 初めてフォームを送信すると、正常に機能します。しかし、同じフォームを 2 回目に送信すると、2 回目のリクエストが送信され、3 回目は 3 回のリクエストが送信されます。
脚本:
function postInvokeFunctionForm(functionId){
var formId = "#"+functionId+"-form";
var formUrl = "invokeFunction.html?functionId="+functionId
$(formId).submit(
function(){
$.ajax({
type: 'POST',
url: formUrl,
data: $(formId).serialize(),
success: function (data){
alert('successfully invoked function!' + data);
}
});
return false;
}
);
}
動的に生成されたフォーム:
<form action="" method="post" id="xxxxx-form" class="invokeFunctionForm">
<input name="functionId" value="xxxxx" readonly="readonly" style="visibility: hidden;" type="text">
<input value="Invoke" onclick="postInvokeFunctionForm(xxxxx);" type="submit">
</form>
これは明らかに望ましくありません。私が考えることができる唯一の解決策は、id が送信された後に (動的に生成された) フォームを再レンダリングすることですが、それは高価な操作になります。
これは JQuery ajax 送信に関する既知の問題ですか、それとも明らかな問題がありませんか? おそらく何らかの形の再帰が行われているのでしょうか?
ありがとう。