Enviar un formulario con JQuery Ajax genera múltiples solicitudes (y envíos)
Me he encontrado con un problema con los envíos de formularios JQuery y no he encontrado respuestas en ningún lado. Si alguien pudiera arrojar algo de luz sobre esto, sería muy apreciado.
El problema: la primera vez que envío el formulario, funciona bien. Perosi envío el mismo formulario por segunda vez, envía 2 solicitudes, 3 solicitudes la tercera vez, y así sucesivamente.
Guión:
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;
}
);
}
Forma generada dinámicamente:
<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>
Esto obviamente no es deseable. La única solución en la que puedo pensar es id para volver a representar el formulario (generado dinámicamente) después de enviarlo, pero sería una operación costosa.
¿Es este un problema conocido con las presentaciones de JQuery ajax o me falta algo obvio? ¿Hay acaso alguna forma de recursión?
Gracias.