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