1

在 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 中运行良好。

我很茫然,一个解决方案将不胜感激。

4

1 回答 1

4

Its caused in the type of element you've created. "form_redir" is no valid html tag so it created an element but it has only the default dom methods. Change it to "form" and it will work.

于 2011-08-10T15:14:25.667 回答