我有这样的标记:
<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,则不会发生这种情况.
要清楚:我希望用户在输入时立即看到工具提示错误,没有任何“提交”操作. (我根本不想使用表单元素,但所有相关的演示似乎都需要.)
任何解决方法是最受欢迎的.如果可能,请张贴工作小提琴.
似乎有一个奇怪的问题,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