我在提交 JQuery 表单时遇到了问题,但在任何地方都找不到答案。如果有人可以对此有所了解,将不胜感激。
问题:我第一次提交表单时,它工作正常。但是,如果我第二次提交相同的表单,它会发送 2 个请求,第三次发送 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 提交的一个已知问题,还是我遗漏了一些明显的东西?是否可能发生某种形式的递归?
谢谢。