Ошибка «Отправить не является функцией» в Firefox в динамически созданной форме без других входных данных отправки - PullRequest
1 голос
/ 10 августа 2011

В консоли ошибок Firefox 5 (но не в IE 9) появляется ошибка «myForm.submit не является функцией», когда я вызываю следующую функцию javascript (во внешнем файле сценария):

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>

Я широко использовал Googled и знаю, что эта ошибка возникает, когда есть ввод формы, который также называется «submit», который затем конфликтует с именем функции submit () формы. Однако это не тот случай.

Идея состоит в том, чтобы перемещаться и отправлять значения POST по определенному URL-адресу при нажатии кнопки путем динамического создания формы. Он отлично работает в IE, но не в Firefox.

Я в растерянности, и решение будет глубоко оценено.

1 Ответ

4 голосов
/ 10 августа 2011

Это вызвано типом элемента, который вы создали. «form_redir» не является допустимым HTML-тегом, поэтому он создал элемент, но у него есть только стандартные методы dom. Измените его на «форму», и он будет работать.

...