여기에 a sample angular directive to prevent typing non-numeric keys (StackOverflow answer)입니다. 몇 가지 입력에서 is-number 지시어를 사용하려면 this fiddle과 같은 것을 쓰고 싶습니다. 입력에 다양한 지시어가 있으므로 위에서 언급 한 답변의 업데이트에서 제안 된 템플릿과 동일한 템플릿을 사용할 수 없다고 생각하십시오.각도 지시문 : 숫자 만 허용
var $scope;
var app = angular.module('myapp', []);
app.controller('Ctrl', function($scope) {
$scope.myNnumber1 = 1;
$scope.myNnumber2 = 1;
});
app.directive('isNumber', function() {
return {
require: 'ngModel',
link: function (scope, element) {
scope.$watch(element.ngModel, function(newValue,oldValue) {
newValue = String(newValue);
newValue = newValue.replace('۰', '0').replace('۱', '1').replace('۲', '2').replace('۳', '3').replace('۴', '4').replace('۵', '5').replace('۶', '6').replace('۷', '7').replace('۸', '8').replace('۹', '9');
var arr = String(newValue).split("");
if (arr.length === 0) return;
if (arr.length === 1 && (arr[0] == '-' || arr[0] === '.')) return;
if (arr.length === 2 && newValue === '-.') return;
if (isNaN(newValue)) {
element.ngModel = oldValue;
}
});
}
};
업데이트 : 나는 등 영어 이외의 번호와 변환하는 일부 공정을 할 필요가 있음을 고려하시기 바랍니다. Angular_10의 답변에 따라 a new fiddle here을 만들었습니다. 자, 페르시아 숫자를 입력하는 동안 커서 위치를 제외한 모든 것은 괜찮습니다. 페르시아 숫자를 입력하면 영어 숫자로 바뀌지 만 커서가 갑자기 끝까지 이동합니다.
당신이 달성하려는 당신이 무엇을하려고 한 내용을 상세하게 질문을 정교하게하십시오. –
비 숫자 키 입력을 방지하기 위해 지시문을 사용하여 작성한 @ Angular_10 [js 및 html] (http://jsfiddle.net/AMShafiee/u1w9v2m7/) 코드가 작동하지 않습니다. [바이올린] (http://jsfiddle.net/AMShafiee/u1w9v2m7/)을 확인하고 어떻게 해결할 수 있는지 알려주십시오. – Ahmad