在 JavaScript 中只允许数字

Allow only numbers in JavaScript

本文关键字:数字 许数字 JavaScript      更新时间:2023-09-26

可能的重复项:
HTML 文本输入仅允许数字输入

我使用了这个脚本

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;
 }

但是这个脚本不能单独在火狐中工作。有什么替代方法可以限制用户在 javascript 中的 shift 键吗?

event

Firefox中没有定义,它破坏了你的代码。测试后放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;
 }

小提琴

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

试试这段代码。

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

检查小提琴..

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

您可以使用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 数字是输入元素的 id,for 循环和推送函数仅推送允许的字符。48 到 58 是键盘上数字 0-9 的关键值