【发布时间】:2012-04-11 14:45:22
【问题描述】:
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();,但我得到了同样不想要的结果。
有没有人遇到过这个问题,或者有解决方案?
【问题讨论】:
-
对 jQuery 更友好,尝试将
var form = document.createElement('form');更改为var form = $("<form />").attr('method', 'POST'); -
关键部分是 jQuery 的 append() 在非元素上调用时不会执行任何操作。
标签: jquery forms firefox form-submit