form.submit()无法在Firefox中运行

时间:2014-03-21 09:59:12

标签: javascript jquery html forms

我正在使用以下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

我在这里遗漏了什么吗?请指教。

1 个答案:

答案 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();
}