2013-11-28 127 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();' />