Javascript表单似乎只能正确提交到新选项卡,而不是相同的选项卡

时间:2014-01-21 03:40:29

标签: javascript php html forms

我知道标题很奇怪,但我想不出一种简洁的说法:

此代码创建表单并提交到URL:

function post_to_url( path, params, method ) {
    method = method || "post"; // Set method to post by default if not specified.

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    //form.setAttribute("target", "_blank");

    for ( var key in params ) {
        if ( params.hasOwnProperty(key) ) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
        }
    }
    document.body.appendChild(form);
    form.submit();
}

如您所见,我已注释掉target属性。

我有以下代码调用函数:

    var params = new Array();
    params["param1"] = param1;
    params["param2"] = param2;
    post_to_url('newTask.php', params, "get");

如果我将目标属性设置为_blank,那么它会打开一个新选项卡,该功能正常工作,我可以在网址栏中看到我的参数。
但是,如果我删除target属性(我更喜欢),似乎页面只是刷新。 URL中没有参数,页面不会像接收到数据一样。

有人可以帮我跟踪吗?

1 个答案:

答案 0 :(得分:0)

尝试使用:

form.setAttribute("target", "_self");