欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

限制文本框输入:禁止激活输入法、禁止全角输入、限制只能输入数字

程序员文章站 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,'')" />