我有一个奇怪的问题,当我在输入文本框中输入enter时,输入图像上的onclick事件被触发
<form id="MyForm" action="/someaction">
<input type="image" src="someimage.jpg" onclick="doStuff();$('#MyForm').submit();" />
<input type="text" name="textInput"/>
</form>
当光标在文本框中并且我点击回车时,而不是正在提交的表单,它调用图像输入上的onclick事件 .
有什么想法吗?
3 回答
当您按Enter键时,onclick事件将在输入图像上触发 . 我将
<img>
包装在<a>
中,因为您单独调用submit()
,因此输入元素变为冗余 .我相信在很多情况下按“输入”按钮会算作点击,包括链接 . 如果你想只在使用鼠标时执行你的动作,那么考虑使用onmousedown或onmouseup而不是onclick,我建议你使用后者 .
所以我有一个类似的问题,它只发生在IE浏览器中 . Chrome和Firefox正常工作 . 当从输入框点击进入时,它将触发我们不想要的第一个输入类型=“图像”,因为它会向IE发送多个请求,并且在输入几次之后它会崩溃 .
快速简单的解决方法,虽然不是最好的解决方案,但我们使用的是将虚拟输入类型=“图像”与onclick返回值false之前放置,以便被触发的那个实际上不会触发请求 . 不是正确的根解决方案,而是一个好的临时解决方