如何禁用angularjs中的shift + anykey组合

时间:2015-02-25 11:00:22

标签: javascript angularjs

我正在尝试编写一个指令,只允许数字和一个十进制值。但按下数字时的shift键会显示特殊字符。

请建议一种不使用正则表达式的方法,因为我不想让用户输入其他字符

setTargetPage.directive('numPercent', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attr, ctrl) {
            var keyCode = [8, 9, 37, 39, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 110, 190];
            element.bind("keydown", function (event) {
                if ($.inArray(event.which, keyCode) == -1) {
                    event.preventDefault();
                }
                else {
                    if ((event.which == 110 || event.which == 190) && element.val().indexOf('.') > -1) {
                        event.preventDefault();
                    }
                }
            });
        }
    }
});

1 个答案:

答案 0 :(得分:0)

当按下Shift时,event.shiftKey(纯JS并不特别需要AngularJS)是真的。