KeyCode在mozilla中出错了

时间:2016-12-16 09:11:27

标签: javascript jquery mozilla

我的javascript代码禁用文本框ix中的小数,就像这样

$(document).ready(function() {
    $(".money-input").keypress(function (e) {
        // between 0 and 9
        if (e.which < 48 || e.which > 57) {
            alert(1);
            showAdvice(this, "Integer values only");
            return (false);  // stop processing
        }
    });

    function showAdvice(obj, msg) {
        $("#singleAdvice").stop(true, false).remove();  // remove any prev msg
        $('<span id="singleAdvice" class="advice">' + msg + '</span>').insertAfter(obj);
        $("#singleAdvice").delay(4000).fadeOut(1500);  // show for 4 seconds, then fade out
    }
});

这在Chrome中非常完美。但是当我去Mozilla时。如果是这种情况,后面的空间也会进入。所以当我按后退空间时没有任何反应,并显示错误信息。任何人都可以指出我做错了吗?

1 个答案:

答案 0 :(得分:1)

对于不可打印的字符,keypress事件不会触发,例如 Esc Ctrl Shift ,以及case,退格。

改为使用keyup()

$(".money-input").keyup(function(e) {
    if (e.which < 48 || e.which > 57) {
        showAdvice(this, "Integer values only");
        return false;
    }
});

Example fiddle