验证 – 角度验证输入类型=“数字”

前端之家收集整理的这篇文章主要介绍了验证 – 角度验证输入类型=“数字”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的标记
<form name="myForm" ng-controller="myCtrl" novalidate>
    <input ng-model="theValue" type="range" min="0" max="100" required>
    <input ng-model="theValue" type="number" required></input>
    <span ng-show="theValue.$error.number">Hey! No letters,buddy!</span>
</form>

而且,当用户在第二个输入中意外地输入一个字母时,我希望显示跨度.简单吧?作为(可能)相关问题,当用户移动第一个滑块输入时,第二个输入中的值消失.为什么?如果我从标记删除了type-number,则不会发生这种情况.

要清楚:我希望用户在输入时立即看到工具提示错误,没有任何“提交”操作. (我根本不想使用表单元素,但所有相关的演示似乎都需要.)

http://jsfiddle.net/7FfWT/

任何解决方法是最受欢迎的.如果可能,请张贴工作小提琴.

似乎有一个奇怪的问题,type =“number”与其他输入播放很好.

这个Google群组帖子中的帖子应该会让您处于正确的轨道.特别是最后一个帖子:https://groups.google.com/forum/#!msg/angular/Ecjx2fo8Qvk/x6iNlZrO_mwJ

jsfiddle链接为:http://jsfiddle.net/ABE8U/

作为一个工作,他作出了一个指示:

.directive('toNumber',function () {
    return {
        require: 'ngModel',link: function (scope,elem,attrs,ctrl) {
            ctrl.$parsers.push(function (value) {
                return parseFloat(value || '');
            });
        }
    };
});

感谢Schmuli Raskin

猜你在找的Angularjs相关文章