2012-05-11 14 views
11

Estoy intentando enviar un formulario creado por jQuery. El formulario se adjunta a un div y la variable 'datos' a continuación se crea utilizando php; solo publicaré el código js más importante.forma jQuery presentar con .on()

Probé muchas cosas con y sin 'on()', pero no obtuve el cuadro de alerta que muestra el '1' para saber que el bloque de código se está ejecutando realmente ... tbh no entiendo lo que hago ' Estoy haciendo mal, cualquier explicación sería muy apreciada. ¡Gracias por adelantado!

$(".r5").click(function(event){ 
    var data='<select name="sForum"><option value="1">bla</option></select>'; 
    $(this).parent().next('div').html('<form class="moveform">'+data+'<input type="submit" name="submit" class="movethisform" value="Move Thread" /></form>'); 
}); 
$("form.moveform").on("submit",function(event){ 
    alert(1); 
}); 
+2

En el momento en que usted está tratando de obligar al controlador de eventos a 'form.moveform', la la forma no existe todavía Utilice la delegación de eventos o enlace el controlador cuando el formulario se haya agregado al DOM. –

Respuesta

20

Usted es vinculante para el formulario antes de que exista. Enlazar el evento para el documento, y pasar el selector de formulario para .on:

$(".r5").click(function(event){ 
    var data='<select name="sForum"><option value="1">bla</option></select>'; 
    $(this).parent().next('div').html('<form class="moveform">'+data+'<input type="submit" name="submit" class="movethisform" value="Move Thread" /></form>'); 
}); 
$(document).on("submit", "form.moveform", function(event){ 
    alert(1); 
}); 
0

has necesitado

$("inout.movethisform").on("click",function(event){ 
    alert(1); 
    $("form.moveform").submit(); 
}); 
+0

¿Dónde debería ir este código? ¿Qué hay de malo en utilizar un administrador de eventos de envío? ¿Por qué debería esto resolver el problema? –

+0

El propósito de reemplazar .live con .on es vincular un selector en un selector principal. Es por eso que no deberías codificar de esta manera cuando usas .on –