限制文本框输入:禁止激活输入法、禁止全角输入、限制只能输入数字
程序员文章站
2022-04-28 17:37:24
...
禁止用户激活中文、韩文、日文等的输入法(IME)状态
ime-mode 版本:IE5+专有属性 继承性:无
语法:
ime-mode : auto | active | inactive | disabled
参数:
- auto : 不影响IME的状态。与不指定ime-mode属性时相同
- active : 指定所有使用IME输入的字符。即激活本地语言输入法。用户仍可以撤销激活IME
- inactive : 指定所有不使用IME输入的字符。即激活非本地语言。用户仍可以撤销激活IME
- disabled : 完全禁用IME。对于有焦点的控件(如输入框),用户不可以激活IME
例子:
<input type="text" style="ime-mode:disabled;" ... />
限制文本框输入,只能输入数字
方法一、
监听onKeyPress事件,通过判断keyCode禁止数字以外的键值输入:
<input type="text" onKeyPress="if(event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;" />
缺点:可以向文本框中粘贴任何内容,也可以激活输入法输入任何内容
方法二、
监听onKeyUp事件,通过正则表达式将数字以外的值替换成空串:
<input type="text" onKeyUp="this.value=this.value.replace(/\D/g,'')" />
缺点:输入进去后闪一下再消失,很奇怪
相对完美的解决方案:
综合以上3中方法:既禁止数字以外的键值输入,又禁止激活输入法,同时通过正则表达式将数字以外的值替换成空串。
<input type="text" style="ime-mode:disabled;" onKeyPress="if(event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;" onKeyUp="this.value=this.value.replace(/\D/g,'')" />
上一篇: ps怎么像sai一样有模糊笔刷?
下一篇: checkbox与说明文字无法对齐的问题