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();
,我得到了同样不需要的结果。
之前是否有人遇到此问题,或者有解决方案?
答案 0 :(得分: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();
});
})