angularjs – 如何覆盖角度类型=数字验证?
我正在撰写一份指令,以验证瑞典社会安全号码(personnummer).要在这样的输入元素上使用:
<input type="text" ng-model="pnr" pnrvalidator /> 瑞典社会安全号码的格式为yyyymmdd-nnnn,例如19121212-1212 只要我使用type =“text”,我的指令就可以工作.但是因为我想在移动浏览器上使用数字键盘, <input type="number" ng-model="pnr" pnrvalidator /> 然后我的验证器只有在我的输入中没有输入破折号( – )时才有效,例如191212121212.如果我输入19121212-1212那么它不是有效数字. 当我编写指令时,我遵循了文档如何修改内置验证器https://docs.angularjs.org/guide/forms 我的指令代码: angular.module('example').directive('pnrvalidator',function(){ return { require: 'ngModel',link: function(scope,elm,attrs,ctrl) { var validatePnr = function(inputString){ /* * My validation logic here. Removed for this example */ }; ctrl.$validators.number = function(modelValue,viewValue) { if (ctrl.$isEmpty(modelValue)) { // consider empty models to be valid return true; } if (validatePnr(viewValue)) { // it is valid return true; } // it is invalid return false; }; } }; }); 我的例子http://plnkr.co/edit/OFYG06YEFwKg8zrLYVN1?p=preview的一个plunker
你可以告诉html不要通过标签中的novalidate属性来验证html表单.当您在angularjs中进行验证时,您不需要再次通过HTML验证它.
http://www.w3schools.com/tags/att_form_novalidate.asp (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何限制bash中函数中使用的线程/子进程数
- AngularJS:动态添加的字段未在FormController上注册
- 如何在Clojure中获取Unix Timestamp?
- scala – 玩错误:值,不是play.api.libs.json的成员
- angularjs – 在ng-repeat中显示ng单击时隐藏的div
- AngularJS_简介、特性及基本使用
- 如何将scala.collection.Set转换为RDD中可序列化的java.uti
- Bootstrap入门Demo——制作路径导航栏
- AngularJS配置.run()块中设置路由事件的监听器以及过滤未经
- VIM安装NERDTree插件显示工程目录