我想在按键事件上格式化输入数字,但需要在输入字段中显示之前检查它是否是包含点(。)的数字而不是我需要验证的任何其他符号。
<div ng-controller = "MyCtrl1">
<label>Enter a 4 digit number to format:</label>
<input type ="text" ng-model="Number" ng-keydown ="update()" ng-blur ="updated()" maxlength="5"/><br><br>
<span ng-show ="show">Please enter only numeric value.</span>
</div>
答案 0 :(得分:4)
我认为,您应该使用一些特殊的过滤器指令。该指令绑定keydown事件的一些过滤函数,如果用户输入无效字符,将阻止默认事件。这样的事情:
app.directive('numbersOnly', function () {
return {
restrict: 'A',
link: function (scope, elm, attrs, ctrl) {
elm.on('keydown', function (event) {
if (validCondition) {
return true;
} else {
event.preventDefault();
return false;
}
});
}
}
});
我做了一个小提琴,我尝试为你创建特殊的过滤器(只传递数字和点)检查出来:http://jsfiddle.net/jNzcY/