Я столкнулся с проблемой отправки форм 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 или я упустил что-то очевидное? Возможно, имеет место какая-то форма рекурсии?
Спасибо.