HTML:
<input production-qty type="text" maxlength="3" ng-model="qty1">
@H_403_4@
指示:
app.directive('productionQty', function() {
return {
require: 'ngModel',
link: function (scope, element, attr, ngModelCtrl) {
function fromUser(text) {
var transformedInput = text.replace(/[^0-9]/g, '');
console.log(transformedInput);
if(transformedInput !== text) {
ngModelCtrl.$setViewValue(transformedInput);
ngModelCtrl.$render();
}
return transformedInput; // or return Number(transformedInput)
}
ngModelCtrl.$parsers.push(fromUser);
}
};
});
@H_403_4@
另请参见input中有关ng-model的过滤器。我上面的答案是基于pkozlowski.opensource的答案建模的。
我看了ng-pattern,但是它不能过滤文本框中显示的内容。设置$scope.qty1@H_403_4@为
undefined@H_403_4@,但是不需要的字符在文本框中可见。