表单未提交onclick事件

时间:2013-11-28 11:21:15

标签: javascript jquery html

我正在尝试在图片点击事件上提交表单,但在点击事件触发后我收到Uncaught TypeError: Object #<HTMLInputElement> has no method 'submit'此错误。

我的代码:

<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>

有任何想法或建议吗?感谢。

6 个答案:

答案 0 :(得分:2)

您必须删除/更改提交按钮的属性名称,例如:

name="btnSubmit"

否则,FORM元素的submit()方法被覆盖。

答案 1 :(得分:2)

将提交按钮名称从submit更改为ref_submit

如下图所示

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

答案 2 :(得分:0)

这只是一个想法,但尝试使用

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

而不是

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

答案 3 :(得分:0)

页面中可能已经存在id=searchRef的html元素,因此getElementById()出错了。

更好的解决方案是用input type = image:

替换你的提交按钮
<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']的POST请求(对应于图像左上角的(x,y)鼠标坐标)

答案 4 :(得分:0)

请更改表单标记操作属性,将#替换为目标page name say action.php,并在表单标记中添加onsubmit="javascript:return false"

答案 5 :(得分:0)

发生此错误是因为您的name属性为submit,请尝试更改名称属性或尝试使用以下代码。

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