`
yunzhu
  • 浏览: 1141110 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
B2b19957-cda7-3a9e-83a0-418743feb0ca
监控应用服务器
浏览量:109108
2e8be8be-e51f-346c-bcdd-12623c9aa820
Web前端开发
浏览量:119256
Bfa5df64-a623-34b9-85b8-ef3ce2aed758
经典异常的解决
浏览量:203996
社区版块
存档分类
最新评论

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

阅读更多

 

禁止用户激活中文、韩文、日文等的输入法(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,'')" />
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics