我有一个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
正如预期的那样..
答案 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";