【问题标题】:Allow only numbers in JavaScript [duplicate]JavaScript中只允许数字[重复]
【发布时间】:2012-06-22 06:23:00
【问题描述】:

可能重复:
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键的任何替代方法?

【问题讨论】:

  • 你真的用过.shiftkey吗?如果是:它需要是.shiftKey,大写K
  • 我同时使用了大写和小写。不能在 Firefox 中工作。它允许。
  • 如果你说 what 你试图通过“限制”shift 键来完成它会有所帮助。您想在按下 shift 键时阻止任何按键吗?您是否希望 shift 键不起作用(例如,shift+a 生成 a 而不是 A)?
  • @itzArun:那么你需要展示更多代码。例如,事件处理程序的绑定。也许你用错了。
  • 我已经更新了我的脚本。我只想在我的文本框字段中允许数字

标签: javascript


【解决方案1】:

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

Fiddle

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

【讨论】:

  • 另一种选择是使用window.event,即undefined,但访问它不会引发错误。
  • 不错的建议,已编辑答案以包含其他可能的修复方法。
  • 这对我有帮助。谢谢你们俩。
【解决方案2】:

试试这个代码..

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

检查小提琴..

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

【讨论】:

【解决方案3】:

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

【讨论】:

  • Jquery 并不是所有事情的神奇答案。停止使用 jquery 来解决简单的 javescript 可以解决的问题。
  • 使用 jQuery 没问题,但是每次按键都创建一个数组?!
  • @ThiefMaster 恭喜钻石
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-15
  • 2016-10-07
  • 2011-11-09
相关资源
最近更新 更多