我正在尝试设置一个只接受数字的输入,但仍然可以输入字母,为什么?
<input type="number"
pattern="[0-9]"
ng-model="slip.risk"
class="form-control"
placeholder="Risk"
ng-change="riskWinCalculations(slip, 'RISK')">
这是针对Angularjs应用程序的,所以我不知道这是问题还是什么。
答案 0 :(得分:2)
模式不会阻止字符被输入到输入元素中,它只会启动验证。
为防止输入非数字字符,您可以使用截取所输入值的指令。
angular.module('components', []).directive('numbersOnly', function () {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
ngModelCtrl.$parsers.push(function (inputValue) {
var transformedInput = inputValue.replace(/\.\.+/g, '.');
ngModelCtrl.$setViewValue(transformedInput);
ngModelCtrl.$render();
return inputValue;
});
}
}
});