2012-04-11 8 views
5
var makeField = function(name, value) { 
    return $('<input />').attr({ 
     type: 'hidden', 
     name: name, 
     value: value 
    }); 
}; 

$('.login').on('click', function() { 
    var form = $('<form />').attr('method', 'POST'); 

    form.append(makeField('n0', 'data1')); 
    form.append(makeField('n1', 'data2')); 
    form.append(makeField('n2', 'data3')); 

    $(document).append(form); 
    form.submit(); 
}); 

El código anterior funciona bien en Safari, Chrome y Opera, pero firefox ignora form.submit();. Probé el código anterior agregando console.log('...'); arriba y abajo de la llamada de envío, y se ejecuta sin error. También intenté llamar al $(form).submit();, y obtuve el mismo resultado no deseado.La aplicación de formulario de Firefox jQuery no funciona

¿Alguien se ha encontrado con esto antes, o tiene una solución?

+0

Sé más amigable jQuery, intente cambiar 'var = document.createElement forma ('forma');' 'forma de var = $ ("

") .attr ('method', 'POST'); ' – SpYk3HH

+0

La parte clave es que el append() de jQuery no hace nada en silencio cuando se invoca a un elemento que no sea elemento. –

Respuesta

5

actualizada con el nuevo código de

$(function() { 
    var makeField = function(name, value) { 
     return $('<input />').attr({ 
      type: 'hidden', 
      name: name, 
      value: value 
     }); 
    }; 

    $(document).on('click', '.login', function() { 
     var form = $("<form />").attr({ method: "POST" }).append(
       makeField('n0', 'data1'), 
       makeField('n1', 'data2'), 
       makeField('n2', 'data3') 
      ); 

     // just adding a callback on submit here to show it works 
     form.submit(function(e){ alert("Submitting Form"); }); 

     $("body").append(form); 
     form.submit(); 
    }); 
}) 

Ver WORKING jsFiddle in FF HERE

+0

Gracias por la limpieza del código, pero eso no resolvió mi problema con Firefox. –

+0

si acabo de editarlo con explicaciones, realmente necesitaría ver más de lo que estás haciendo para determinar el problema, supongo que ese no es tu código por completo, ¿pero en pedazos? – SpYk3HH

+0

Modifiqué mi código original para incluir sus ediciones, así como su apariencia real y lo único que cambia son los nombres y valores de los campos. –

Cuestiones relacionadas