Tengo un formulario + diseño de este modo:¿Por qué el evento de envío de un formulario no se activa (jQuery)?
<form ...>
<div id="editor">
[form html]
<input type="submit" value="Submit form" />
</div>
</form>
Y la siguiente javascript:
$(function() {
var form = $('#editor').parents('form');
alert(form.length); // this alerts "1"
$(document).on('submit', 'form', function() {
alert('document form submit fired'); // this works as expected (alerts)
});
form.on('submit', function() {
alert('selected form submit fired'); // this is never alerted
});
});
Este formulario no se carga a través de AJAX. Cuando se carga la página, el primer diálogo alerta "1". Sin embargo, al enviar el formulario, solo se activa una alerta, la que activa el envío para todos los formularios del documento.
¿Por qué sucedería esto?
Funciona para mí en jsFiddle http://jsfiddle.net/sERhZ/ Tal vez algo está mal con su html o incluso configuración? –
De hecho, dados los manejadores, el que se aplica directamente al formulario debe (y lo hace) disparar primero. ¿Es este tu código completo? ¿Hay algún error en la consola del navegador? – tvanfosson
Apuesto a que tienes 'return false' en el primer controlador impidiendo que el segundo se dispare. ¿Estoy en lo cierto? – gdoron