2013-11-28 67 views
0

我想提交表單上的圖像點擊事件,但我得到Uncaught TypeError: Object #<HTMLInputElement> has no method 'submit'點擊事件後,這個錯誤火災。表單不提交與onclick事件

我的代碼:

<form name="searchRef" id="searchRef" method="get" action="#"> 
    <input type="text" name="s" id="ref" value="" class="ref_search" /> 
    <input type="submit" name="submit" id="ref_submit" value="GO" class="ref_submit" /> 
    </span> <span> <img src="http://www.webdeveloper.com/forum/image.php?s=2c556ca62e6fd2a2e4d6ca925fb3fda1&u=8331&dateline=1057444055" alt="Go" onClick="document.getElementById('searchRef').submit();"> </span> 
</form> 

任何意見或建議?謝謝。

+0

您的表單中的任何輸入字段是否爲'submit'? –

回答

2

您必須刪除/更改屬性提交按鈕的名稱,e.g:)

name="btnSubmit" 

否則,提交(FORM元素的方法將被覆蓋。

2

更改從submit提交按鈕名稱ref_submit

如下圖所示

<input type="submit" name="ref_submit" id="ref_submit" value="GO" class="ref_submit" /> 
0

這只是一個想法,但嘗試使用

document.forms["searchRef"].submit(); 

,而不是

document.getElementById('searchRef').submit(); 
+0

提交仍將引用input元素,不再提交submit()方法 –

0

您的頁面中可能已經有一個含有id=searchRef的html元素,因此getElementById()會出錯。

更好的解決方案將是,以取代由輸入類型提交按鈕=圖像:

<input type="image" name="ref_submit" id="ref_submit" value="GO" class="ref_submit" 
    src="path/to/your/image" /> 

通知,這將導致在服務器側通過與$_POST['submit_x']$_POST['submit_y'](其對應於第(x POST請求,y)的小鼠從圖像的左上角座標)

+1

'name =「submit」'不應該在FORM元素內部使用 –

+0

謝謝,我沒注意到。這似乎是一個問題,只是因爲使用jquery,對吧? – Asenar

0

請改變形式標記操作屬性,與所述目標page name say action.php repalce #,以及在形式標記添加onsubmit="javascript:return false"

0

發生此錯誤是因爲您的name屬性爲submit,請嘗試更改名稱屬性或嘗試下面的代碼。

<img src="http://www.webdeveloper.com/forum/image.php?s=2c556ca62e6fd2a2e4d6ca925fb3fda1&u=8331&dateline=1057444055" alt="Go" onclick='window.searchRef.submit();' />