2010-05-09 15 views
1

我有一個簡單的頁面,並在該頁面運行一個簡單的jQuery按鍵例程來捕捉數字1到9(必須是通過RNIB可訪問性測試)的點擊。如何獲得一個JavaScript例程,如果它在文本框中不行動?

並在該頁面是一個窗體,它可以輸入數字作爲郵編的一部分。

http://find.talking-newspapers.co.uk/result.php?addressInput=kingston

滾動至底部,嘗試例如鍵入8或9。該文本被輸入,但它也作用於按鍵。預期,但不好。

我知道像document.getElementById的各種東西,但我不知道如何把它們放在一起,以確保當光標在文本輸入框中時,它不會執行按鍵捕捉器。

回答

5

事件對象(處理函數的參數)的target屬性將告訴您哪個元素實際上生成了該事件。

你需要檢查e.target是否是<input>元素,像這樣:

if ($(e.target).is(':input')) 
    return; 
+0

謝謝 - 希望我能投了,但無論如何,這樣一個簡單的解決方案,謝謝。我很遠,遠遠不符合標準! 但在此之前,我有這個代碼,和問題: 如果(EVT) { 的keyCode = evt.keyCode || evt.which; } 現在我有這個代碼,沒有問題! if(evt) if($(evt.target).is(':input')) return; keyCode = evt.keyCode || evt.which; } 謝謝。我正在尋找非常錯誤的地方! – talkingnews 2010-05-10 00:17:33

相關問題