Firefox jQuery表单提交无效

var makeField = function(name, value) { return $('').attr({ type: 'hidden', name: name, value: value }); }; $('.login').on('click', function() { var 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('...');测试上面的代码console.log('...'); 在提交调用的上方和下方,它执行时没有错误。 我也试过调用$(form).submit(); ,我得到了同样不需要的结果。

有没有人遇到这个,或者有解决方案?

更新了您的新代码

 $(function() { var makeField = function(name, value) { return $('').attr({ type: 'hidden', name: name, value: value }); }; $(document).on('click', '.login', function() { var 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(); }); }) 

请参阅FF HERE中的WORKING jsFiddle