關(guān)閉表單元素中的輸入法是很常見的需求摸吠,比如輸入E-mail、
網(wǎng)址時用的都是英文字母福贞,此時關(guān)閉輸入法可以防止用戶輸入錯誤笤昨。
目前主流的禁用(關(guān)閉)技術(shù)是利用CSS的特殊屬性祖驱,還有就是JavaScript的事件文本過濾技術(shù)。
下面分別講解這兩種方案
植入CSS特殊屬性這種方案有一個弊端瞒窒,就是不支持Chrome瀏覽器捺僻,
但是其他主流瀏覽器(如IE、FireFox等)都支持崇裁。創(chuàng)建一個函數(shù)banInputMethod()
<h2>關(guān)閉輸入法</h2>
<input type='text' id='banInputMethodgoogle' value='不支持谷歌瀏覽器'>
//關(guān)閉輸入法
function banInputMethod(_elementArr) {
var arr = _elementArr; // 待處理的所有節(jié)點元素
var self = this;
// 使用instanceof判斷參數(shù)是否為數(shù)組匕坯,如果不是數(shù)組,將參數(shù)修改為數(shù)組寇壳,
// 方便后邊代碼統(tǒng)一處理醒颖。instanceof用于判斷一個值是否為某個對象的實例
if (!(_elementArr instanceof Array)) {
arr = [_elementArr];
};
for (var i = 0, arrLen = arr.length; i < arrLen; i++) { //遍歷元素節(jié)點
var arrI = arr[i];
arrI.onfocus = function () {
//樣式方案妻怎,只兼容除了Chrome瀏覽器之外的瀏覽器
this.style.imeMode = 'disabled';
}
}
}
banInputMethod(getElement("banInputMethodgoogle"));
function getElement(eStr) { //根據(jù)ID獲取指定對象
return document.getElementById(eStr);
}