2011-05-10 49 views
2

感觉真的傻不必问这个头台但我还是不知道为什么这个代码不工作就非常简单感叹提交表单的JavaScript

我得到以下当我从任何一个下拉列表中选择并且表单不提交时,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> 

回答

5

既然你:

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

的提交功能遭受重挫与HTMLElementNode。

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

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

如果你不能将其重命名(因为你必须依赖于提交该值并不能更改服务器端代码服务器端代码),那么你可以:

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

哦,我新这将是一些简单的我用看,现在的工作太感谢你了! – flyersun 2011-05-10 15:46:26

3

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

重命名提交按钮可让您无误地调用submit()方法。

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

应工作原因