我面臨或多或少同樣的問題描述here(即我有被點擊編程時,一個標籤後獲得焦點提交輸入項目,但重點處理程序也被調用時用戶點擊按鈕,導致雙重提交)。鏈接帖子中建議的解決方案工作,但我需要一個不需要jQuery的解決方案。有沒有人對此有過一些想法?請注意,我需要按鈕的點擊行爲保持不變,因爲它綁定到一個asp.net服務器端事件。謝謝!防止專注於普通的JavaScript按鈕點擊
3
A
回答
2
你要防止從形式提交,以便添加事件偵聽器,然後你想怎麼JavaScript來處理提交表單代碼。還要問你如何在不依賴任何框架的情況下如何勝任代碼編寫的問題! :-)
一些粗糙的代碼給你如何防止提交表單的想法...
if (window.addEventListener)
{
forms[i].addEventListener('submit',function(e) {e.preventDefault(); eval(id_forms[e.target.id]+'();');},false);
}
else if (window.attachEvent)
{
forms[i].attachEvent('onsubmit',function(e,f) {e.returnValue=false; eval(id_forms[e.srcElement.id]+'();');});
}
2
我結束了與具有使用keyUp和的keyDown處理程序中,我設置/取消一個isKeyPressed變量。這是我的理解是,按Tab鍵,當這種情況發生的事件的順序如下:
- 的keyDown
- 重點虎子
- 使用keyUp
因此,在焦點事件處理程序我檢查重點是通過製表(即如果isKeyPressed設置爲true)並在那裏提交表單。否則,如果在click()後獲得焦點,isKeyPressed將不會被設置爲true,並且我不會以編程方式觸發表單提交。
+0
事件是基於DOM,而不是從JavaScript中,可以在這裏找到所有地方的好名單:http://en.wikipedia.org/wiki/DOM_events – John
相關問題
- 1. 防止EditText專注於下一個按鈕點擊軟鍵盤
- 2. 專注於單擊按鈕
- 3. Select2:防止Select2下拉專注於點擊
- 4. Javascript:點擊注入按鈕?
- 5. 如何使editText專注於Android中的按鈕點擊?
- 6. jQuery專注於點擊按鈕的警報框
- 7. 按鈕如何專注於點擊在Android
- 8. Javascript按鈕,防止鼠標雙擊
- 9. 防止快速提交按鈕點擊?
- 10. 防止多個按鈕點擊
- 11. 如何防止按鈕點擊
- 12. Android - 防止按鈕點擊PopupWindow以外
- 13. jQuery防止回發點擊按鈕
- 14. 防止頁面刷新按鈕點擊
- 15. 專注於單選按鈕
- 16. 防止按鍵點擊按鈕點擊即使在vb6中
- 17. iOS:防止點擊通過禁用的工具欄按鈕
- 18. 防止Silverlight的datagrid選擇從點擊按鈕點擊改變?
- 19. 防止用戶FOM重新登錄註銷後通過點擊後退按鈕
- 20. 普通mysql準備語句防止注入攻擊?
- 21. 防止窗口滾動低於摺疊,直到按鈕點擊
- 22. 按鈕點擊後防止通知抽屜崩潰
- 23. 通過箭頭鍵點擊防止按鈕被聚焦
- 24. 按鈕點擊XSS JavaScript注入
- 25. 防止表TR點擊排在點擊按鈕
- 26. JavaScript:如何防止雙擊按鈕或禁用按鈕
- 27. Javascript阻止ASP.NET按鈕點擊
- 28. 的JavaScript/jQuery的禁止提交點擊按鈕,防止重複提交
- 29. 防止點擊通過格
- 30. 無法專注於FragmentActivity中的按鈕
感謝您的回答。該解決方案看起來不錯(可能減去使用eval :))。我已經實施了另一種方法,我忘了在這裏寫下來,所以我會這樣做,但要給你答案。 –
我使用eval謹慎,這段代碼實際上是我如何防止從形式提交我的網站上這樣我就可以了JavaScript處理他們,而不是一部分。我仍然處理JavaScript禁用時提交的表單,並在啓用JavaScript時通過追加?ajax = 1來確定差異。 – John