在 Firefox 5 的错误控制台(但不在 IE 9 中)中,当我调用以下 javascript 函数(在外部脚本文件中)时,我收到错误“myForm.submit is not a function”:
function go(url_go, arr_POST_vars, str_method) {
var str_method = str_method || "POST"; // by default uses POST
var myForm = document.createElement("form_redir");
myForm.setAttribute("method", str_method);
myForm.setAttribute("action", url_go);
for (var key in arr_POST_vars) {
var myInput = document.createElement("input");
myInput.setAttribute("name", key);
myInput.setAttribute("type", "hidden");
myInput.setAttribute("value", arr_POST_vars[key]);
myForm.appendChild(myInput);
}
document.body.appendChild(myForm);
myForm.submit();
}
我页面上唯一的 HTML(在 HTML 正文标记之间)是以下行:
<button type='button' onClick='javascript:go("http://www.testsite.com/login.php", {userCode:"2487",password:"jon123"}, "POST");'>Go!</button>
我已经广泛搜索,并且我知道当有一个也称为“提交”的表单输入时会发生此错误,然后与表单的“提交()”函数名称发生冲突。然而,这里不是这种情况。
这里的想法是通过动态创建表单来导航并在单击按钮时将 POST 值提交到特定的 url。它在 IE 中运行良好,但在 Firefox 中运行良好。
我很茫然,一个解决方案将不胜感激。