按下鍵盤時會觸發鍵盤事件,順序為keydown -> keypress ->keyup。1、keydown、keypress事件觸發在文字還沒敲進文字框,這時如果在keydown、keypress事件中輸出文字框中的文字,得到的是觸發鍵盤事件前的文字,而keyup事件觸發時整個鍵盤事件的操作已經完成,獲得的是觸發鍵盤事件後的文字。看下面這個例子:複製程式碼 程式碼示例:在文字框中敲入數字1,輸出結果為:onkeydown defaultonkeypress defaultonkeyup default12、keypress事件與keydown和keyup的主要區別1)對中文輸入法支援不好,無法響應中文輸入2)無法響應系統功能鍵(如delete,backspace)3)由於前面兩個限制,keyCode與keydown和keyup不是很一直3、在keyup事件中無法阻止瀏覽器預設事件,因為在keypress時,瀏覽器預設行為已經完成,即將文字輸入文字框(儘管這時還沒顯示),這個時候不管是preventDefault還是return false,都不能阻止在文字框中輸入文字的行為,如要阻止在文字框中輸入文字,必須在keydown或keypress時阻止。看下面這個例子: 程式碼示例: 結果為keydown、keypress事件中return false文字框無法輸入文字,在keyup事件中return false文字框可以輸入文字4、textInput事件文字框的鍵盤響應事件把textInpput也加進來,觸發的順序為:keydown -> keypress ->textInput -> keyuptextInput事件是DOM3後支援的,主要用來替換keypress,與keypress的主要差別在於添加了對中文輸入法的支援,還有一點就是textInput只在可編輯文字區才能觸發(如input、textarea),而keypress是任何能獲得焦點的控制元件的能觸發(如button),但是textInput事件的支援還不是很好,目前只有safari、chrome支援。
按下鍵盤時會觸發鍵盤事件,順序為keydown -> keypress ->keyup。1、keydown、keypress事件觸發在文字還沒敲進文字框,這時如果在keydown、keypress事件中輸出文字框中的文字,得到的是觸發鍵盤事件前的文字,而keyup事件觸發時整個鍵盤事件的操作已經完成,獲得的是觸發鍵盤事件後的文字。看下面這個例子:複製程式碼 程式碼示例:在文字框中敲入數字1,輸出結果為:onkeydown defaultonkeypress defaultonkeyup default12、keypress事件與keydown和keyup的主要區別1)對中文輸入法支援不好,無法響應中文輸入2)無法響應系統功能鍵(如delete,backspace)3)由於前面兩個限制,keyCode與keydown和keyup不是很一直3、在keyup事件中無法阻止瀏覽器預設事件,因為在keypress時,瀏覽器預設行為已經完成,即將文字輸入文字框(儘管這時還沒顯示),這個時候不管是preventDefault還是return false,都不能阻止在文字框中輸入文字的行為,如要阻止在文字框中輸入文字,必須在keydown或keypress時阻止。看下面這個例子: 程式碼示例: 結果為keydown、keypress事件中return false文字框無法輸入文字,在keyup事件中return false文字框可以輸入文字4、textInput事件文字框的鍵盤響應事件把textInpput也加進來,觸發的順序為:keydown -> keypress ->textInput -> keyuptextInput事件是DOM3後支援的,主要用來替換keypress,與keypress的主要差別在於添加了對中文輸入法的支援,還有一點就是textInput只在可編輯文字區才能觸發(如input、textarea),而keypress是任何能獲得焦點的控制元件的能觸發(如button),但是textInput事件的支援還不是很好,目前只有safari、chrome支援。