我需要input="text"
。
以下代码是文本指令,强制用户只键入数字。
默认情况下,所需警告为ON。现在的问题是,如果您在文本框中键入除数字之外的任何关键字,它将不会键入字符(这很好)但所需的错误将消失!!!!!!结果是一个文本框,其值为空,而不是必需的错误消息!!!
angular.module('league').directive('numbersOnly', function () {
return {
require: 'ngModel',
link: function (scope, element, attr, ngModelCtrl) {
function fromUser(text) {
if (text) {
var transformedInput = text.replace(/[^0-9]/g, '');
if (transformedInput !== text) {
ngModelCtrl.$setViewValue(transformedInput);
ngModelCtrl.$render();
}
return transformedInput;
}
return undefined;
}
ngModelCtrl.$parsers.push(fromUser);
}
};
});

<input type="text" class="CreateTxt" ng-model="league.name" name="leagueName" required />
<span ng-show="myForm.leagueName.$error.required" style="color:red">Its required...</span>
&#13;
答案 0 :(得分:1)
使用type =&#34; number&#34;?无法实现相同的行为
您需要更改
return undefined;
到
return null;
否则,角度将导致解析错误,这不是必需的错误。所以除了你选择的后备价值之外,几乎所有的事情都做得很好。