使用Javascript提交表单

时间:2011-05-10 15:41:46

标签: javascript submit

我觉得不得不问这个 head desk 我真的很傻但是我不知道为什么这段代码不能正常工作呢叹息

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

未捕获的TypeError:对象#的属性'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> 

2 个答案:

答案 0 :(得分:5)

因为你有:

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

提交函数已被HTMLElementNode破坏。

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

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

如果你不能重命名它(因为你的服务器端代码取决于提交的那个值,而你无法更改服务器端代码),那么你可以:

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

答案 1 :(得分:3)

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

重命名提交按钮将允许您无错误地调用submit()方法。

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

应该工作