在C#/ ASP.NET應用程序中,我有一個呈現很像下面的表單(再加上很多,但是這是最重要的):如何在WebKit中輸入INPUT TYPE =「IMAGE」不提交?
<form method="post" action="">
<input type="image" name="ctl15" src="cancel.gif" style="border-width:0px;" />
<!-- Server side, the above input is a System.Web.UI.WebControls.ImageButton. -->
...more extra fluff...
<input type="submit" name="Button1" value="Proceed" id="Button1" class="button"
style="width:59px;" />
</form>
這種形式只是正常工作在Internet Explorer中和Firefox,但在基於WebKit的瀏覽器(Safari和Chrome)中失敗。問題在於,當用戶在輸入字段中按下Enter鍵而不是使用鼠標點擊提交按鈕時,圖像輸入被激活(在這種情況下,對應於取消事件,與「正好相反」 「針對相關用戶界面的行爲是很自然的)。
我想要做的是,在回車按鍵,激活<input type="submit">
按鈕而不是的<input type="image">
,無需通過點擊圖片破提交。我怎樣才能做到這一點?最好以跨瀏覽器的方式,所以我不需要在代碼中更多的特殊情況。
請不要使用jQuery解決方案,因爲這個應用程序沒有使用它(並且爲這樣一個「簡單」事物引入一個全新的庫將變得非常困難) - 股票JavaScript是非常好的。顯然最好的辦法是如果只能用HTML和CSS來完成,但是我對此的可行性有懷疑。
實質上,這個問題在我看來似乎與HTML: Submitting a form by pressing enter without a submit button完全相反。
不幸的是,由於用戶界面的不同部分由不同的類呈現,並保存在單獨的.aspx文件中(具體來說,<input type="image">
位於同一位置,<input type="submit">
位於另一位置),重新排列生成的HTML中的元素也不是一個可行的解決方案。
奇怪......它看起來很有前途,但是當我將它添加到「
」元素中並在Safari和Chrome中嘗試相同的功能時,在按Enter鍵時它似乎無法達到onkeypress函數我通過在'if(keyCode == 13)'塊內添加一個elert來證實這一點。 ''沒有指定類型,但是當我用檢查器驗證時,它顯示爲'type:text'。我會更多地考慮它,但任何建議都是值得歡迎的。 – 2010-11-16 10:07:29@Michael - 嘗試添加警報(oCurInput.name +「 - 」+ oCurInput.type);在這行之後:var oCurInput = arrInputs [i];並看看發生了什麼 – 2010-11-16 11:30:12
現在,我們決定通過簡單地刪除基於WebKit的瀏覽器中提交的圖像來解決問題。不過,我懷疑這是一個永久性的解決方案,所以我稍後可能會重新討論這個問題。感謝您的幫助! – 2010-11-22 13:02:58