3

可能重复:
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;
 }

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

4

3 回答 3

2

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

小提琴

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

于 2012-06-20T06:49:39.243 回答
0

试试这个代码..

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

检查小提琴..

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

于 2012-06-20T06:47:38.983 回答
-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 是输入元素的id,for 循环和push 函数只推送允许的字符。48 到 58 是键盘上数字 0-9 的键值

于 2012-06-20T06:43:57.253 回答