这里有一个文本框。在该字段中有一个验证需要只允许数字,字母和西班牙字符。为此我在javascript中找到了一个函数。该功能在ng-keypress中,我想将其更改为ng-change。如果我改变,该功能不会触发。
如何将功能更改为ng-change。
JSP代码: -
<input type="text" ng-model="name" ng-keypress="getPatternForAlphebet($event,$index)">
脚本代码: -
$scope.getPatternForAlphebet = function(event,rowIndex){
var key = key || event.which;
if($scope.documentTypeNumber==1 || $scope.documentTypeNumber ==2){
if ((key > 64 && key < 91)|| (key > 159 && key < 166) || (key > 96 && key < 123) || (key == 165) ||(key == 32)
|| (key == 164) || (key == 130) || (key == 181) || (key == 144) || (key == 214) ||
(key == 224) ||(key == 233) || (key == 8) || (key == 241) || (key == 209)) {
}else{
event.preventDefault();
}
}else if($scope.documentTypeNumber==6){
if ((key > 64 && key < 91)|| (key > 159 && key < 166) || (key > 96 && key < 123) || (key == 165) ||(key == 32) ||
(key == 59) || (key == 164) || (key == 58) || (key == 46) || (key == 44) || (key == 38) ||
(key == 34) || (key == 130) || (key == 181) || (key == 144) || (key == 214) ||
(key == 224) ||(key == 233) || (key == 8) || (key == 241) || (key == 209)) {
}else{
event.preventDefault();
}
}
};
答案 0 :(得分:1)
ng-change
必须与ng-model
一起使用。因此,请将ng-model
添加到输入字段。
详细了解ng-change
here
编辑:
正如 Alexis Toby 所说,ng-change
没有$event
。去掉它。它会起作用。
答案 1 :(得分:0)
尝试使用&#34; ng-keydown&#34;调用相同的功能。点击此plunker
的链接<input type="text" ng-model="name" ng-keydown="getPatternForAlphebet($event,$index)">
答案 2 :(得分:0)
我认为你可以使用指令代替。请根据需要找到以下代码更新,希望这会有所帮助。请为Backspace添加密钥代码并在两者中删除。谢谢
<input type="text" ng-model="name" documentvalue="{{documentTypeNumbe}}" filtered-character>
directive('filteredCharacter', function () {
return function (scope, element, attrs) {
element.bind("keydown paste", function (event) {
//console.log($.inArray(event.which,keyCode));
var keyCode = [];
if (attrs.documentvalue == 1 || attrs.documentvalue == 2) {
keyCode = [65, 91, 159]; // Please add all the required key codes
} else if (attrs.documentvalue == 6) {
keyCode = [67, 93, 161]; // Please add all the required key codes
}
if ($.inArray(event.which, keyCode) === -1) {
scope.$apply(function () {
scope.$eval(attrs.filteredCharacter);
event.preventDefault();
});
event.preventDefault();
}
});
};
});