使用 Javascript 提交表单

Submit form with Javascript

本文关键字:表单 提交 Javascript 使用      更新时间:2023-09-26

我觉得不得不问这个总台真的很傻,但我不知道为什么这段代码不起作用,真的很简单叹

当我从任何一个下拉列表中选择并且表单未提交时,我收到以下 JavaScript 错误。

未捕获的类型错误:对象 # 的属性"提交"不是函数

<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> 

因为你有:

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

提交函数已被该 HTMLElementNode 破坏。

简单的解决方案是重命名它,或删除名称。

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

如果无法重命名它(因为服务器端代码依赖于要提交的值,并且无法更改服务器端代码),则可以:

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

尝试调用form.submit()时出错的原因是您的提交按钮称为"submit"。这意味着 Form 对象的"submit"属性现在是对提交按钮的引用,覆盖了窗体原型的"submit"方法。

重命名提交按钮将允许您调用 submit() 方法而不会出错。

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

应该工作