input=text数字问题

  其实老干部也会犯错,今天朋友在银行卡账号时候要求输入数字,它的正则竟然排除中文。其实正则是很重要的。废话少说。如果禁止中文呢

  • ime-mode

  但是这个方法兼容性并不是很好,首先我们得知道。

  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 并不支持这一样式单属性。

  • 正则验证

  直接文本验证,很多人喜欢监听键盘,判断键盘编码,测试一下,有点问题,比如说搜狗中文输入,如果你打了一长串中文,最后选择数字,确定是哪个字符串。监听事件是无法监听的。我们最好的办法是监听文本,文本监听的时候最后是监听键盘弹起事件onkeyup,文本正则一定要也要全文本扫描'/g',这是很多初用正则说容易忘记的。方法如下,最简单的写法。

<input type="text" style="ime-mode:disabled"       onkeyup="this.value=this.value.replace(/[^\d]/g,'')"/>

 

 

 

  

  

posted @ 2016-01-13 11:15  Peter_zhou  阅读(1451)  评论(0编辑  收藏  举报