首页 文章

输入按钮时触发的图像输入onclick事件被按下

提问于
浏览
1

我有一个奇怪的问题,当我在输入文本框中输入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 回答

  • 1

    当您按Enter键时,onclick事件将在输入图像上触发 . 我将 <img> 包装在 <a> 中,因为您单独调用 submit() ,因此输入元素变为冗余 .

  • 0

    我相信在很多情况下按“输入”按钮会算作点击,包括链接 . 如果你想只在使用鼠标时执行你的动作,那么考虑使用onmousedown或onmouseup而不是onclick,我建议你使用后者 .

  • 0

    所以我有一个类似的问题,它只发生在IE浏览器中 . Chrome和Firefox正常工作 . 当从输入框点击进入时,它将触发我们不想要的第一个输入类型=“图像”,因为它会向IE发送多个请求,并且在输入几次之后它会崩溃 .

    快速简单的解决方法,虽然不是最好的解决方案,但我们使用的是将虚拟输入类型=“图像”与onclick返回值false之前放置,以便被触发的那个实际上不会触发请求 . 不是正确的根解决方案,而是一个好的临时解决方

相关问题