JS的textinput事件

「DOM3級事件」規範中引入了一個新事件,名叫textInput。根據規範,當用戶在可編輯區域中輸入字符時,就會觸發這個事件。這個用於替代keypress的textInput事件的行爲稍有不一樣。

區別之一就是任何能夠得到焦點的元素均可以觸發kepress事件,但只有可編輯區域才能觸發textInput事件。

區別之二extInput事件只會在用戶按下可以輸入實際字符的鍵時纔會被觸發,而keypress事件則在按下那些可以影響文本顯示的鍵時也會觸發(例如退格鍵)。

因爲textInput事件主要考慮是字符,所以它的event對象中還包含一個data屬性,這個屬性的值就是用戶輸入的字符(而非字符編碼)。換句話說,用戶在沒有按上檔鍵的狀況下按下了S鍵,data的屬性就是「s」,而若是在按住上檔鍵時按下該鍵,data的值就是「S」。

如下是一個使用textInput事件的例子:

 var EventUtil = {
        getEvent: function (event) {
        return event ? event : window.event;
        },web

        addHandler: function (element, type, handler) {
        if (element.addEventListener) {
        element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
        element.attachEvent("on" + type, handler);瀏覽器

        } else {編碼

        element["on" + type] = handler;
        }
        }
        };
        var textbox = document.getElementById("myText");spa

        EventUtil.addHandler(textbox, "textInput", function (event) {orm

        event = EventUtil.getEvent(event);
        alert(event.data);對象

        });事件

複製代碼ci

在這個例子中,插入到文本框中的字符會經過一個警告框顯示出來。目前只有Safari3和Chrome瀏覽器支持textInput事件。所以,在跨瀏覽器開發中,可能還沒法使用這個事件
相關文章
相關標籤/搜索