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

Приведенный выше код отлично работает в Safari, Chrome и Opera, но firefox игнорирует form.submit();. Я протестировал вышеуказанный код, добавив console.log('...'); выше и ниже вызова отправки, и он выполняется без ошибок. Я также попробовал позвонить $(form).submit();, и я получаю тот же нежелательный результат.Firefox jQuery форма представления не работает

Кто-нибудь сталкивался с этим раньше или имел решение?

+0

Будьте JQuery дружеским, попробуйте изменить 'уаг формы = document.createElement ('формы');' 'в форму вара = $ ("

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

+0

Ключевой частью является то, что append() в jQuery ничего не делает при вызове неэлемента. –

ответ

5

Обновлен с новым кодом

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

См WORKING jsFiddle in FF HERE

+0

Спасибо за очищение кода, но это не решило мою проблему с firefox. –

+0

fyi только что отредактировал его с объяснением, действительно нужно было бы увидеть больше того, что вы делаете, чтобы определить проблему, я предполагаю, что это не ваш код целиком, а на куски? – SpYk3HH

+0

Я изменил свой первоначальный код, чтобы включить ваши изменения, а также то, что он на самом деле выглядит, и единственное, что меняется, - это имена и значения полей. –

Смежные вопросы