Отправить форму с помощью Javascript

#javascript #submit

#javascript #Отправить

Вопрос:

Я чувствую себя действительно глупо из-за того, что спрашиваю об этом у главного администратора, но я понятия не имею, почему этот код не работает, это действительно просто вздох

Я получаю следующую ошибку JavaScript, когда я выбираю из любого из выпадающих списков, а форма не отправляется.

Неперехваченная ошибка типа: свойство ‘submit’ объекта # не является функцией

 <form action="categories/view/52" method="post" accept-charset="utf-8" id="myform" name="myform"> 
<select name="sort" ID="sort_type" onchange='document.forms["myform"].submit();'>   
  <option value="label">Sort</option> 
  <option value="price-low-high">Price: Low - High</option> 
  <option value="price-high-low" selected="selected">Price: High - Low</option> 
  <option value="name-a-z">Name A - Z</option> 
  <option value="name-z-a">Name Z - A</option> 
  <option value="date-added-new">Date Added - New</option>  
  <option value="date-added-old">Date Added - Old</option> 
</select> 
<select name="limit" ID="sort_type" onchange='document.forms["myform"].submit();'>   
  <option value="items_3" selected="selected">3</option> 
  <option value="items_50">50</option> 
  <option value="items_100">100</option> 
  <option value="items_all">all</option> 
</select> 
<input type="submit" name="submit" value="submit"  />
</form> 
  

Ответ №1:

Поскольку у вас есть:

 <input type="submit" name="submit" value="submit"  />
  

Функция отправки была заблокирована этим HTMLElementNode.

Простое решение — переименовать ее или удалить имя.

 <input type="submit" value="submit"  />
  

Если вы не можете переименовать ее (потому что у вас есть код на стороне сервера, который зависит от отправляемого значения, и вы не можете изменить код на стороне сервера), то вы можете:

 document.createElement('form').submit.call(document.forms["myform"]);
  

Комментарии:

1. О, потому что я новичок, это было бы что-то простое, я просматривал, теперь это работает, большое вам спасибо!

Ответ №2:

Причина ошибки при попытке вызвать form.submit() заключается в том, что ваша кнопка отправки называется «отправить». Это означает, что свойство «submit» вашего объекта Form теперь является ссылкой на кнопку отправки, переопределяя метод «submit» прототипа формы.

Переименование кнопки отправки позволило бы вам вызывать метод submit() без ошибок.

 <input type="submit" name="submitEle" value="submit"  />
  

Должно сработать