我正在使用JavaScript提交我从头开始制作的表单。以下代码适用于Chrome,但不适用于Firefox或IE。如何制作和提交表单并使其在“所有”浏览器中运行?
function someFunction(){
var SomeForm = document.createElement("form");
addInputFieldToForm("SpecialName_SortField","UpdateDate",SomeForm);
addInputFieldToForm("SpecialName_SortOrder","false",SomeForm);
addInputFieldToForm("Operation","Search",SomeForm);
SomeForm.action = "<%=link("direct", "WorkspaceDisplay") %>"; // assume this URL is valid (it is).
SomeForm.method = "post";
SomeForm.target = "_top";
SomeForm.submit();
}
//EDIT: Added this function to the question just so there's less mystery (not because it matters, really)
function addInputFieldToForm(elementName, elementValue, theForm) {
var inputElement = document.createElement("input");
inputElement.name = elementName;
inputElement.value = elementValue;
inputElement.id = elementName;
theForm.appendChild(inputElement);
}
答案 0 :(得分:3)
您必须先将表单附加到文档中,然后才能提交 如果您不想更改UI,可以将样式应用于表单。
var SomeForm = document.createElement("form");
SomeForm.style.display = "none"; // <-- Invisible form
document.body.appendChild(SomeForm); // <-- Append <form> to body
// Rest of code ...
附注:您使用SomeForm
作为变量名称。它是一个非常有效的JavaScript变量,但是它遵守惯例。 Camel-cased变量只应用于命名构造函数,例如Array
,Object
,MyClass
。