こんにちは、私はangularjsでWebアプリケーションを開発しています。私はテキストボックスを検証する必要があります。最大10桁の数字のみを受け入れる必要があります。私はディレクティブを持っていますが、現在のディレクティブはタイプされたディジットの数を制限するべきではありません。指定された範囲内の入力を受け入れるためのangularjs指令
myapp.directive('validNumber', function() {
return {
require: '?ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
if (!ngModelCtrl) {
return;
}
ngModelCtrl.$parsers.push(function (val) {
if (angular.isUndefined(val)) {
var val = '';
}
var clean = val.replace(/[^0-9]+/g, '');
if (val !== clean) {
ngModelCtrl.$setViewValue(clean);
ngModelCtrl.$render();
}
return clean;
});
element.bind('keypress', function (event) {
if (event.keyCode === 32) {
event.preventDefault();
}
});
}
};
});
<div class="inputblock" ng-class="{ 'has-error' : ((form1.$submitted && form1.idnumber.$invalid)|| (form1.idnumber.$invalid && form1.idnumber.$dirty))}">
<label class="inputblock-label" ng-show="idnumber">{{ 'ID Number' | translate }}</label>
<span class="ang-error" style="color:#fff" ng-show="form1.idnumber.$dirty && form1.idnumber.$invalid ">
<span ng-show="form1.idnumber.$invalid && form1.idnumber.$dirty">*{{'Max allowed digits 10' | translate}}</span>
</span>
<input class="with-icon" type="text" name="idnumber" placeholder="{{ 'ID Number' | translate }}" ng-model="idnumber" required ng-pattern="/^[0-9]{1,7}$/" > <!--valid-number-->
</div>
上記の指示文で変更する必要があることを知っていて、最大10桁まで受け入れることができます。どんな助けもありがとう。ありがとうございました。
なぜNG-MAXLENGTHを使用していないエラーメッセージが表示されたい場合は、 = "10"? – Vivz
こんにちはVivz、私は使用することができますが、私のテキストボックスはテキストを受け入れるべきではありません。 –
入力タイプ= "number"およびmaxlength = "10"を使用します。指示が不要 – OnDoubt