2017-05-30 38 views
0

我想创建一个输入掩码。角度输入掩码只能禁用数字

我想要删除和箭头键功能以及除1 2 3 4 5之外的所有其他键。我使用1,2,3,4,5,6作为热键用于计划应用程序。是否有可能创建一个只禁用数字1-6的掩码?

<input pattern="regex"> <!-- not working because it only fires after submit --> 
+0

https://github.com/angular-ui/ui-mask –

+0

ng-keypress是我所需要的。谢谢:) –

回答

3
<input type="text" ng-keypress="keyPressed($event)"> 

在控制器

function MyCtrl($scope){ 
    $scope.keyPressed = function(e) { 
     if (e.keyCode >= 49 && e.keyCode <= 54) { 
      event.preventDefault(); 
     } else { 
      // do your logic 
     } 
    } 
} 

你可以用ng-pattern属性做的,但它允许的字符并做验证,但您的要求是禁用的字符。

+0

谢谢!出于某种原因,这也禁用了ABCDEF(字母的前6个字母) –

+0

(e.keyCode> = 97 && e.keyCode <= 102)由于某种原因导致了ABCDEF错误 –

+1

a = 97 b = 98 根据http://www.expandinghead.net/keycode.html,c = 99 d = 100 e = 101 f = 102 。不知何故,这些键码打破它。我想没有支持数字键盘。 –

0

可以使用角度ng-pattern来实现这一目标:

<input type="text" ng-model="check" name="check" ng-pattern="/^[^1-6.]*$/"> 
<small class="error" ng-show="exampleForm.check.$error.pattern">Invalid pattern.</small> 

动态检查无效键进入不上提交。

+0

我不是这方面的专家,但我试过了,我认为它只是在点击提交按钮后才开始。无论如何谢谢你的帮助:) –

+0

谁告诉它只适用于提交?你也可以在变化上做到这一点。 – SaiUnique