• 2008-11-29

    js控制文本框只能输入数字 - [优化&特效]

    在网页里让文本框只能输入数字的一种方法。外加回车换Tab (javascript key键的使用)+禁止切换输入法

    第一步利用样式表。

    <asp:TextBox Runat="server" id="TT" style="ime-mode:disabled" onkeydown="myKeyDown()"></asp:textBox>

    第二步利用js脚本。

    function myKeyDown()
    {
        var    k=window.event.keyCode;   

        if ((k==46)||(k==8)||(k==189)||(k==109)||(k==190)||(k==110)|| (k>=48 && k<=57)||(k>=96 && k<=105)||(k>=37 && k<=40))
        {}
        else if(k==13){
             window.event.keyCode = 9;}
        else{
             window.event.returnValue = false;}
    }


    利用样式表(style="ime-mode:disabled" )可以防止切换成汉字输入法,也就是说只能使用英文输入法,这样就防止了输入汉字的情况。

    js脚本就是要限制键盘输入,只能填入数字、小数点、负号、退格键、删除键和方向键。

    ascii码说明:
    8:退格键
    46:delete
    37-40: 方向键
    48-57:小键盘区的数字
    96-105:主键盘区的数字
    110、190:小键盘区和主键盘区的小数点
    189、109:小键盘区和主键盘区的负号

    13:回车
    9: Tab 就是那个把焦点移到下一个文本框的东东。

    对了还有两个缺点:
    1、没有验证多个小数点的情况。
    2、没有验证多个负号,和符号必须在前的情况。

    收藏到:Del.icio.us




    评论

  • 谢什么,真是的。
  • 为什么不用正则过滤呢,感觉这种阻止用户切换输入法,体验性不好。
    叮咛回复桂荣说:
    感谢您一直以来对我博客的关注.呵呵.这是转载的别人的一篇..事实上我也觉得这样做也费事.因为这样要写的JS代码也远远多于用正则..呵呵...谢谢您!!
    2008-11-29 16:53:13