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