JavaScript函数只发送一个post参数

时间:2014-02-09 15:14:18

标签: javascript

我有一个JavaScript函数来发送两个POST参数,一个变量和一个硬编码。但是,当此函数发送POST参数时,实际上它只发送第一个参数而不发送第二个参数。我无法弄清楚为什么会这样 功能代码是:

function post_to_url(path, params, method) {

    method = method || "post"; // Set method to post by default if not specified.
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", "sortvalue");
    hiddenField.setAttribute("value", params);

    var hiddenFieldMode = document.createElement("input2");
    hiddenFieldMode.setAttribute("type", "hidden");
    hiddenFieldMode.setAttribute("name", "mode");
    hiddenFieldMode.setAttribute("value", "showmain");
    form.appendChild(hiddenField);
    form.appendChild(hiddenFieldMode);
    document.body.appendChild(form);
    form.submit();

}

我看到了POST数据,它总是sortvalue=givenvalue而不是sortvalue=givenvalue&mode=showmain正如预期的那样..

2 个答案:

答案 0 :(得分:2)

因为您创建了<input2>元素。

var hiddenFieldMode = document.createElement("input2");

将其更改为:

var hiddenFieldMode = document.createElement("input");

答案 1 :(得分:1)

您正在创建一个标签名为“input2”的元素。这不会被解释为<input>元素。

无需使用.setAttribute()(在任何浏览器中)来设置新DOM节点的属性:

var hiddenFieldMode = document.createElement("input");
hiddenFieldMode.type = "hidden";
hiddenFieldMode.name = "mode";
hiddenFieldMode.value = "showmain";