AngularJS 表单验证
- Previous page AngularJS forms
- Next page AngularJS API
AngularJS 能够验证输入数据。
表单验证
AngularJS 提供客户端表单验证。
AngularJS 监控表单和输入字段(input、textarea、select)的状态,并允许您向用户通知当前状态。
AngularJS 还包含有关它们是否已被触摸或修改的信息。
您可以使用标准 HTML5 属性来验证输入,也可以创建自己的验证函数。
客户端验证不能单独保护用户输入。服务器端验证也是必要的。
required
使用 HTML5 属性 required
指定必须填写输入字段:
实例
此输入字段是必填的:
使用 HTML5 类型 email
指定该值必须是电子邮件:
实例
此输入字段必须是电子邮件:
Biao dan zhuang tai he shu ru zhuang tai
AngularJS hui bu ting geng xin biao dan he shu ru yuan zi de zhuang tai.
Shu ru yuan zi you you xia mian zhuang tai:
$untouched
Zhe ge yuan zi shen wei bei tou chi$touched
Zhe ge yuan zi yi jing bei tou chi$pristine
Zhe ge yuan zi shen wei bei gai gai$dirty
Zhe ge yuan zi yi jing bei gai gai$invalid
Yuan zi nei rong wu xiao$valid
Yuan zi nei rong you xiao
Tong men dou shi shu ru yuan zi de shu xing, jiao you wei zhen huo fa.
Biao dan you you xia mian zhuang tai:
$pristine
Shen wei bei gai gai ren he yuan zi$dirty
Ge huo duo ge yuan zi bei gai gai$invalid
Biao dan nei rong wu xiao$valid
Biao dan nei rong you xiao$subscribed
Biao dan yi jing bei tui ji
Tong men dou shi biao dan de shu xing, ke yi wei zhen huo fa.
Ni ke yi yong zhe xie zhuang tai xiang yong hu xian shi you yi wei de xiao xi. Li ran, ru guo mou ge yuan zi shi bi xu shu ru de, er yong hu jiang ta liu kong, ze neng ying xiang yong hu fa chu jing xing:
实例
Rugao zhe ge yuan zi yi jing bei tou chi qi wei kong, ze xian shi cuo wu xiao xi:
<input name="myName" ng-model="myName" required> <span ng-show="myForm.myName.$touched && myForm.myName.$invalid">Ming cheng shi bi xu shu ru de.</span>
CSS lei
AngularJS gen ju biao dan he shu ru yuan zi de zhuang tai xiang ta men tian jia CSS lei.
Xia mian zhe ge lei bei tian jia dao shu ru yuan zi huo cong shu ru yuan zi zhong shan chu:
ng-untouched
Zhe ge yuan zi shen wei bei tou ching-touched
Zhe ge yuan zi yi jing bei tou ching-pristine
Zhe ge yuan zi shen wei bei gai gaing-dirty
Zhe ge yuan zi yi jing bei gai gaing-valid
Yuan zi nei rong you xiaong-invalid
Yuan zi nei rong wu xiaong-valid-key
Mei ci yan zheng yi ge mi jian. Li ran:ng-valid-required
Dang you duo ge bi xu yan zheng de nei rong shi fei chang you yongng-invalid-key
Li ran:ng-invalid-required
Xia mian zhe ge lei bei tian jia dao biao dan huo cong biao dan zhong shan chu:
ng-pristine
Mei you yuan zi shen wei bei gai gaing-dirty
Yi ge huo duo ge yuan zi bei gai gaing-valid
Biao dan nei rong you xiaong-invalid
Biao dan nei rong wu xiaong-valid-key
Mei ci yan zheng yi ge mi jian. Li ran:ng-valid-required
Dang you duo ge bi xu yan zheng de nei rong shi fei chang you yongng-invalid-key
Li ran:ng-invalid-required
Rugao lei dai bi shi de jia zhi wei: false
Ji shen zhe ge lei bei shan chu.
Qing wei zhe xie lei tian jia yanshi, wei ni de shi yong xing zhuan ti gao de, you guan de yong hu jie mian.
实例
Shi yong zhong ben de CSS ying yong yanshi:
Yi ji neng she zhi biao dan de yanshi.
实例
A yin kan fumu (yuan shi) de biao dan he yi gai gai de biao dan ying yong yanshi:
自定义验证
创建一个自己的验证函数需要一些技巧;您必须向应用程序添加新指令,并使用某些指定参数处理函数内部的验证。
实例
创建您自己的指令,包含自定义验证函数,并通过使用 my-directive
引用它。
仅当值包含字符 "e" 时,该字段才有效:
验证示例
<!DOCTYPE html> <html> <script src="https://cdn.staticfile.net/angular.js/1.6.9/angular.min.js"></script> <body> <h2>验证示例</h2> <form ng-app="myApp" ng-controller="validateCtrl" name="myForm" novalidate> <p>用户名:<br> <input type="text" name="user" ng-model="user" required> <span style="color:red" ng-show="myForm.user.$dirty && myForm.user.$invalid"> <span ng-show="myForm.user.$error.required">用户名是必填项。< </span> </p> <p>电子邮件:<br> <input type="email" name="email" ng-model="email" required> <span style="color:red" ng-show="myForm.email.$dirty && myForm.email.$invalid"> <span ng-show="myForm.email.$error.required">电子邮件是必填项。</span> <span ng-show="myForm.email.$error.email">无效的电子邮件地址。</span> </span> </p> <p> <input type="submit" ng-disabled="myForm.user.$dirty && myForm.user.$invalid || myForm.email.$dirty && myForm.email.$invalid"> </p> </form> <script> var app = angular.module('myApp', []); app.controller('validateCtrl', function($scope) {}} $scope.user = 'Bill Gates'; $scope.email = 'bill.gates@gmail.com'; }); </script> </body> </html>
HTML form attribute novalidate Used to disable the default browser validation.
Example explanation:
AngularJS directives ng-model
Bind the input element to the model.
The model object has two properties:user
And email
.
Due to ng-show
Only when user or email is $dirty
And $invalid
Only when spans with color:red are displayed.
- Previous page AngularJS forms
- Next page AngularJS API