2012-07-30 44 views
0

我看到一個奇怪的行爲,希望有人能解釋這一點。IE 9在初始加載時忽略了keydown事件

我有按鍵事件捕獲任何按鍵在屏幕上按下。如果命中「P」,則展開在輸入字段上執行焦點()和選擇()的部分。

該字段有一個只允許數字字符的keydown()事件。

因此,當我在主屏幕上點擊「P」時,該部分按照原樣展開,但現在該字段中有一個「P」。 這隻發生在IE9中。

奇怪的是,在'P'放在那裏後,keydown()事件必須啓動,因爲如果我嘗試在字段中輸入'P',我不被允許。

有沒有人知道這裏發生了什麼?

+1

我不認爲你需要一個焦點()如果你做一個select(),因爲它通過選擇文本來關注字段。 – 2012-07-30 22:06:33

+0

難道你不應該有一個全球keydown,然後在輸入上的按鍵,而不是相反?這會更有意義。 – 2012-07-30 22:07:40

+0

「* keydown()事件必須在*中踢」是什麼意思? – 2012-07-30 22:09:19

回答

0

找出問題所在,我沒有在按鍵事件上返回false,一旦我這樣做了,沒有更多的輸入被髮送到輸入。

1

也許你可以用keyup更改keypress?我認爲這是IE冒泡或傳播錯誤。

+0

謝謝Tamlyn,I我們來看看並嘗試一下。 – 2012-07-30 22:59:23

+0

抱歉Tamlyn,「keyup」事件無法綁定到IE9中的JQuery輸入。 – 2012-07-30 23:02:52

+0

應該是。你能顯示一些代碼嗎?它可以幫助你理解你的問題;) – 2012-07-30 23:05:51