关闭表单元素中的输入法是很常见的需求,比如输入E-mail、
网址时用的都是英文字母,此时关闭输入法可以防止用户输入错误。
目前主流的禁用(关闭)技术是利用CSS的特殊属性,还有就是JavaScript的事件文本过滤技术。
下面分别讲解这两种方案
植入CSS特殊属性这种方案有一个弊端,就是不支持Chrome浏览器,
但是其他主流浏览器(如IE、FireFox等)都支持。创建一个函数banInputMethod()
<h2>关闭输入法</h2>
<input type='text' id='banInputMethodgoogle' value='不支持谷歌浏览器'>
//关闭输入法
function banInputMethod(_elementArr) {
var arr = _elementArr; // 待处理的所有节点元素
var self = this;
// 使用instanceof判断参数是否为数组,如果不是数组,将参数修改为数组,
// 方便后边代码统一处理。instanceof用于判断一个值是否为某个对象的实例
if (!(_elementArr instanceof Array)) {
arr = [_elementArr];
};
for (var i = 0, arrLen = arr.length; i < arrLen; i++) { //遍历元素节点
var arrI = arr[i];
arrI.onfocus = function () {
//样式方案,只兼容除了Chrome浏览器之外的浏览器
this.style.imeMode = 'disabled';
}
}
}
banInputMethod(getElement("banInputMethodgoogle"));
function getElement(eStr) { //根据ID获取指定对象
return document.getElementById(eStr);
}
网友评论