输入框输入类型限制
css 之 ime-mode
语法:
ime-mode : auto | active | inactive | disabled
取值:
auto : 默认值。不影响ime的状态。与不指定 ime-mode 属性时相同
active : 指定所有使用ime输入的字符。即激活本地语言输入法。用户仍可以撤销激活ime
inactive : 指定所有不使用ime输入的字符。即激活非本地语言。用户仍可以撤销激活ime
disabled : 完全禁用ime。对于有焦点的控件(如输入框),用户不可以激活ime
说明:
设置或检索是否允许用户激活输入中文,韩文,日文等的输入法(ime)状态。
此属性对于 currentstyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 imemode 。
示例:
就是这样。所以当某个文本域不需要中文输入的时候,我们可以通过设置 ime-mode 属性值为 inactive 或者 disabled,减少错误的可能性。同样的我们可以设置那些需要中文输入的文本域的 ime-mode 属性值为 active。
通常C/S的业务系统,都会注意输入法的控制问题。开发基于B/S的业务系统,也一定会遇到同样问题,ime-mode相信可以帮上忙。不过 FireFox 并不支持这一样式单属性。
以下是一个仅限输入正整数的示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
<html xmlns="http://www.w3.org/1999/xhtml"> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
<title>仅限正整数输入</title> | |
</head> | |
<body> | |
<script> | |
//void function (window,undefined){ | |
window.onload=function(){ | |
var doc=document,list=doc.getElementsByTagName('input') | |
/*for(i=len;i>0;list[--i].onkeydown=function(e){ | |
e=window.event || e; | |
var target=e.srcElement || e.target,code=(e.charCode || e.keyCode)+''; | |
reg.lastIndex = 0; | |
if(!reg.test(code)){return false;}; | |
}){}*/ | |
availableNumberInput(list); | |
} | |
function availableNumberInput(inputs){ | |
var len=inputs.length,i,reg=/^(8|9|4[8-9]|5[0-7]|9[6-9]|10[0-5])$/ig; | |
for(i=len;i>0; (inputs[--i].onkeydown=function(e){ | |
e=window.event || e; | |
var target=e.srcElement || e.target,code=(e.charCode || e.keyCode); | |
reg.lastIndex = 0; | |
if(!reg.test(code) || e.shiftKey){return false;}; | |
target.value==='0' && (target.value=''); | |
},inputs[i].oncontextmenu=function(){ | |
return false; | |
}),inputs[i].style.imeMode='disabled'){} | |
}; | |
//}(window); | |
</script> | |
<input type="text" /><br /> | |
<input type="text" /><br /> | |
<input type="text" /> | |
</body> | |
</html> |