2011-05-10 98 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" /> 

應工作原因