“DOM3級事件”規(guī)范中引入了一個新事件,名叫 textInput。根據(jù)規(guī)范,當(dāng)用戶在可編輯區(qū)域中 輸入字符時,就會觸發(fā)這個事件。這個用于替代 keypress 的 textInput 事件的行為稍有不同。區(qū)別 之一就是任何可以獲得焦點(diǎn)的元素都可以觸發(fā)keypress事件,但只有可編輯區(qū)域才能觸發(fā)textInput 事件。區(qū)別之二是 textInput 事件只會在用戶按下能夠輸入實(shí)際字符的鍵時才會被觸發(fā),而 keypress 事件則在按下那些能夠影響文本顯示的鍵時也會觸發(fā)(例如退格鍵)。?
? ? ? ?由于 textInput 事件主要考慮的是字符,因此它的 event 對象中還包含一個 data 屬性,這個屬 性的值就是用戶輸入的字符(而非字符編碼)。換句話說,用戶在沒有按上檔鍵的情況下按下了 S 鍵, data 的值就是"s",而如果在按住上檔鍵時按下該鍵,data 的值就是"S"。?
? ? ? ?南昌網(wǎng)站建設(shè)公司百恒網(wǎng)絡(luò)前端開發(fā)工程師舉一個使用 textInput 事件的例子,以便大家更好理解,代碼如下:?
? ? ? ?
? ? ? ?
? ? ? ?
This example only works in browsers that support the textInput
event.
? ? ? ?
在這個例子中,插入到文本框中的字符會通過一個警告框顯示出來。?
? ? ? ?另外,event 對象上還有一個屬性,叫 inputMethod,表示把文本輸入到文本框中的方式。
? ? ? ?0,表示瀏覽器不確定是怎么輸入的。
? ? ? ?1,表示是使用鍵盤輸入的。
? ? ? ?2,表示文本是粘貼進(jìn)來的。
? ? ? ?3,表示文本是拖放進(jìn)來的。
? ? ? ?4,表示文本是使用 IME輸入的。
? ? ? ?5,表示文本是通過在表單中選擇某一項(xiàng)輸入的。
? ? ? ?6,表示文本是通過手寫輸入的(比如使用手寫筆)。
? ? ? ?7,表示文本是通過語音輸入的。
? ? ? ?8,表示文本是通過幾種方法組合輸入的。
? ? ? ?9,表示文本是通過腳本輸入的。
? ? ? ?使用這個屬性可以確定文本是如何輸入到控件中的,從而可以驗(yàn)證其有效性。支持 textInput 屬 性的瀏覽器有 IE9+、Safari和 Chrome。只有 IE支持 inputMethod 屬性。?? ? ? ?
? 本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.希望此文對廣大技人員有所幫助。原創(chuàng)文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò)http://www.gimmickmag.com/如轉(zhuǎn)載請注明出處!