2012-04-11 18 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(); 
}); 

Powyższy kod działa poprawnie w Safari, Chrome i Opera, ale Firefox ignoruje form.submit();. Przetestowałem powyższy kod, dodając console.log('...'); powyżej i poniżej wywołania, i jest on wykonywany bez błędu. Próbowałem również wywoływać $(form).submit();, a otrzymałem taki sam niepożądany wynik.Przesyłanie formularza jQuery Firefox nie działa

Czy ktoś już wcześniej to robił lub miał rozwiązanie?

+0

Bądź bardziej przyjazny jQuery, spróbuj zmienić 'var tworzą = document.createElement (Postać);' 'do formularza var = $ ("

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

+0

Kluczową częścią jest to, że append() jQuery po cichu nic nie robi po wywołaniu elementu innego niż element. –

Odpowiedz

5

Aktualizacja z nowym kodem

$(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(); 
    }); 
}) 

Zobacz WORKING jsFiddle in FF HERE

+0

Dzięki za oczyszczenie kodu, ale to nie rozwiązało mojego problemu z firefoxem. –

+0

fyi po prostu zredagował to z wytężeniem, naprawdę potrzebowałby zobaczyć więcej tego, co robisz, aby określić problem, zakładam, że to nie jest twój kod całkowicie, ale w kawałkach? – SpYk3HH

+0

Zmodyfikowałem mój oryginalny kod, aby uwzględnić zmiany, a także to, jak on faktycznie wygląda, a jedynymi zmianami są nazwy i wartości pól. –

Powiązane problemy