仅允许JavaScript中的数字

时间:2012-06-20 06:37:17

标签: javascript

  

可能重复:
  HTML Text Input allow only Numeric input

我用过这个脚本

function isNumberKey(evt)
  {
    var e = event || evt; // for trans-browser compatibility
    var charCode = e.which || e.keyCode;                        
    if (charCode > 31 && (charCode < 47 || charCode > 57))
    return false;
    if (e.shiftKey) return false;
    return true;
 }

但是这个脚本不能单独使用firefox。 在javascript中限制用户使用shift键的任何替代方法?

3 个答案:

答案 0 :(得分:2)

Firefox中未定义

event,它会破坏您的代码。在测试evt后将其放置:

function isNumberKey(evt)
  {
    var e = evt || window.event; //window.event is safer, thanks @ThiefMaster
    var charCode = e.which || e.keyCode;                        
    if (charCode > 31 && (charCode < 47 || charCode > 57))
    return false;
    if (e.shiftKey) return false;
    return true;
 }

Fiddle

下次检查错误控制台。 :)

答案 1 :(得分:0)

试试此代码..

$(document).keydown(function (e) {
    if (e.shiftKey) {
        e.preventDefault();
    }
});

检查小提琴..

http://jsfiddle.net/kabichill/8FgH4/

答案 2 :(得分:-2)

你可以使用jQuery

限制任何键按下(也是一组)
$(document).ready(function()
{
     $('#PHONE_NUMBER').keypress(function(e) {
            var a = [];
            var k = e.which;

            for (i = 48; i < 58; i++)
            a.push(i);
            a.push(8);
            if (!(a.indexOf(k)>=0))
                e.preventDefault();
            });
});

其中#phone number是input元素的id,而for循环和push函数只推送允许的字符。 48至58是键盘上数字0-9的关键值