我正在使用以下javascript函数构建表单并将其提交给服务器。它在Chrome浏览器中运行良好,但在Firefox中无效。
function loadPage(url, projectName){
var jForm = $('<form></form>');
jForm.attr('action', url);
jForm.attr('method', 'post');
var jInput = $("<input>");
jInput.attr('name', 'curPrj');
jInput.attr('value', projectName);
jForm.append(jInput);
jForm.submit();
}
我从SE的旧帖子Mozilla form.submit() not working得到了一些建议,将表格附加到文件正文document.body.appendChild(jForm)
,但不幸的是,这对我来说也不起作用。当我在表单提交之前使用document.body.appendChild(jForm)
时,我在调试控制台中出现了以下错误。
TypeError: Argument 1 of Node.appendChild does not implement interface Node. @ http://localhost:9000/assets/javascripts/global.js
我在这里遗漏了什么吗?请指教。
答案 0 :(得分:16)
document.body.appendChild(jForm)
无效,因为jForm
不是dom元素,它是一个jQuery对象,所以在jForm.submit();
之前添加以下脚本
jForm.appendTo('body')
function loadPage(url, projectName) {
var jForm = $('<form></form>', {
action: url,
method: 'post'
});
$("<input>", {
name: 'curPrj',
value: projectName
}).appendTo(jForm);
jForm.appendTo('body').submit();
}