2010-03-24 50 views
1

我有当输入图像上的onclick事件被解雇一个奇怪的问题,当我打在输入文本框中输入图像输入onclick事件被解雇时输入按钮按下

<form id="MyForm" action="/someaction"> 

<input type="image" src="someimage.jpg" onclick="doStuff();$('#MyForm').submit();" /> 

<input type="text" name="textInput"/> 

</form> 

当光标在文本框和我按回车,而不是提交的形式它调用图像输入上的onclick事件。

任何想法是怎么回事?

回答

0

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

1

我相信在许多情况下按下“输入”按钮都会被视为点击,包括链接。如果您希望只在使用鼠标时执行操作,请考虑使用onmousedown或onmouseup而不是onclick,对于您的情况,我会建议后者。

0

所以我有一个类似的问题,它只发生在IE浏览器。 Chrome和Firefox都运行得很好。当从输入框中输入时,它会触发我们不想要的第一个输入类型=“image”,因为它会向IE发送多个请求,并且在输入几次后会崩溃。

虽然不是最好的解决方案,但我们使用的快速简单的解决方法是将虚拟输入类型=“图像”的onclick返回值设置为false,然后才能触发其中一个实际上已经发出请求。不是正确的根解决方案,而是临时解决方案。