2010-03-24 48 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,然後才能觸發其中一個實際上已經發出請求。不是正確的根解決方案,而是臨時解決方案。