Actualmente estoy usando jquery para atrapar el envío de un formulario y mostrar a los usuarios un cuadro de diálogo para confirmación. Si el usuario hace clic en sí, el formulario debe enviarse. Si el usuario hace clic en no, entonces cierre el diálogo.Jquery trap form submit()
Todo esto funciona bien, pero para un problema: cuando el usuario hace clic en sí, esto desencadena el mismo código otra vez, y se vuelve a abrir el cuadro de diálogo.
$("#myform").submit(function (event) {
if (something) {
var $dialog = $('<div></div>').dialog({
buttons: {
"OK": function() {
$dialog.dialog('close');
$("#myform").submit();
return;
},
Cancel: function() {
$(this).dialog("close");
}
}
});
$dialog.dialog('open');
event.preventDefault();
return false;
} else {
$("#myform").submit();
}
});
Entiendo por qué ocurre esto, pero no estoy seguro de la mejor manera de evitarlo. Me doy cuenta de que podría mostrar el modal al hacer clic con el botón, en lugar de enviar el formulario, pero esto no soluciona el problema de que el usuario presione el botón enter en el teclado para enviar el formulario.
Muy interesante! No creo que haya una manera obvia de evitarlo, ¡aunque espero que alguien pueda probar que estoy equivocado! ¿Has intentado integrar la funcionalidad 'preventionDefault()'? –