ການກວດສອບຟອມ AngularJS
- ຫນັງຫນຶ່ງ ການເຮັດງານຫົວໜ້າບົດສະຫຼະການ AngularJS
- ເພີ່ມຫນັງ API AngularJS
AngularJS ສາມາດກວດສອບຄວາມຈິງຂອງຄວາມນຳໃຊ້.
ການກວດສອບຟອມ
AngularJS ສະໜອງການກວດສອບຟອມຢູ່ບັນຊີ.
AngularJS ກວດສອບສະຖານະຂອງຟອມແລະບົດສະຫຼຸບ (input, textarea, select) ແລະອະນຸຍາດທ່ານໃຫ້ບອກຜູ້ນຳໃຊ້ກັບສະຖານະປະຈຸບັນ.
AngularJS ຍັງມີຂໍ້ມູນກ່ຽວກັບບໍ່ແມ່ນຫົວໜ້າທີ່ຖືກສົ່ງຫາຫຼືຖືກດັດແປງ.
ທ່ານສາມາດນຳໃຊ້ບັດຮູບແບບ HTML5 ທີ່ມີການກວດສອບຄວາມຈິງຫຼືສ້າງຫົວວິທີກວດສອບຂອງທ່ານ.
ການກວດສອບຢູ່ບັນຊີບໍ່ສາມາດປ້ອງກັນຄວາມເຂົ້າຂອງຜູ້ນຳໃຊ້ດ້ວຍອິດສະຫຼະ. ການກວດສອບຢູ່ທີ່ຜູ້ບໍລິຫານກໍ່ມີຄວາມຫຼາຍຄວາມສຳຄັນ.
required
ນຳໃຊ້ບັດຮູບແບບ HTML5 required
ບົດສະຫຼຸບຕ້ອງການຖືກຄົ້ນຫາ:
ຄວາມມີປະສິດທິພາບທີ່ສະເພາະ
ບົດສະຫຼຸບນີ້ຕ້ອງໄດ້ຖືກຄົ້ນຫາ:
<form name="myForm"> <input name="myInput" ng-model="myInput" required> </form>输入的有效状态是:
{{myForm.myInput.$valid}}
ນຳໃຊ້ຮູບແບບ HTML5 email
ຄວາມຕ້ອງການຂອງບົດສະຫຼຸບນີ້ຕ້ອງແມ່ນອີເມວ:
ຄວາມມີປະສິດທິພາບທີ່ສະເພາະ
ຄວາມເຂົ້າຂອງບົດສະຫຼຸບນີ້ຕ້ອງແມ່ນອີເມວ:
<form name="myForm"> <input name="myInput" ng-model="myInput" type="email"> </form>输入的有效状态是:
{{myForm.myInput.$valid}}
表单状态和输入状态
AngularJS 会不断更新表单和输入字段的状态。
输入字段有以下状态:
$untouched
ບົດມູນນີ້ບໍ່ໄດ້ຖືກສະເພາະການສະແດງ:$touched
ບົດມູນນີ້ໄດ້ຖືກສະເພາະການສະແດງ:$pristine
ບົດມູນນີ້ບໍ່ໄດ້ຖືກດັດແກ້:$dirty
ບົດມູນນີ້ໄດ້ຖືກດັດແກ້:$invalid
ຂໍ້ມູນບົດມູນບໍ່ມີຄວາມມັກຢາຍ:$valid
ຂໍ້ມູນບົດມູນມີຄວາມມັກຢາຍ:
它们都是输入字段的属性,要么为真,要么为假。
表单有以下状态:
$pristine
尚未修改任何字段$dirty
个或多个字段已被修改$invalid
ຂໍ້ມູນຟອມຂໍ້ມູນບໍ່ມີຄວາມມັກຢາຍ:$valid
ຂໍ້ມູນຟອມຂໍ້ມູນມີຄວາມມັກຢາຍ:$subscribed
表单已被提交
ພວກມັນທັງໝົດແມ່ນຂອງບັນດາລະບົບຟອມຂໍ້ມູນທີ່ສາມາດແກ້ໄຂສຳລັບຕົວເລື່ອງທີ່ຕ້ອງການຫຼືບໍ່:
ທ່ານສາມາດນຳໃຊ້ສະຖານະນີນີ້ທີ່ຈະສະແດງຂໍ້ຄວາມມີຄວາມໝາຍໃຫ້ຜູ້ນຳໃຊ້. ເປັນຕົວຢ່າງວ່າຖ້າບົດມູນແມ່ນຂໍ້ມູນຕ້ອງການແລະຜູ້ນຳໃຊ້ບໍ່ຂຽນລົງ:
ຄວາມມີປະສິດທິພາບທີ່ສະເພາະ
ຖ້າບົດມູນທີ່ບໍ່ໄດ້ຖືກສະເພາະການສະແດງແລະບໍ່ມີຄວາມລຽງ:
<input name="myName" ng-model="myName" required> <span ng-show="myForm.myName.$touched && myForm.myName.$invalid">ຊື່ແມ່ນຂໍ້ມູນຕ້ອງການ.</span>
ຈຸດສັນຍາ CSS
AngularJS ຈະສະແດງຈຸດສັນຍາ CSS ໃຫ້ບັນດາຟອມຂໍ້ມູນແລະບົດມູນຂອງບົດຂໍ້ມູນອີງຕາມສະຖານະຂອງພວກມັນ:
ບັນດາຈຸດສັນຍາທີ່ຖືກເພີ່ມໃຫ້ບົດມູນຂອງບົດຂໍ້ມູນຫຼືຖືກຕັດອອກຈາກບົດມູນຂອງບົດຂໍ້ມູນ:
ng-untouched
ບົດມູນນີ້ບໍ່ໄດ້ຖືກສະເພາະການສະແດງ:ng-touched
ບົດມູນນີ້ໄດ້ຖືກສະເພາະການສະແດງ:ng-pristine
ບົດມູນນີ້ບໍ່ໄດ້ຖືກດັດແກ້:ng-dirty
ບົດມູນນີ້ໄດ້ຖືກດັດແກ້:ng-valid
ຂໍ້ມູນບົດມູນມີຄວາມມັກຢາຍ:ng-invalid
ຂໍ້ມູນບົດມູນບໍ່ມີຄວາມມັກຢາຍ:ng-valid-key
ກວດກາຄຳປະກອບກັບຄຳປະກອບຕໍ່ເນື່ອງນີ້:ng-valid-required
ມັນມີຜົນປະໂຫຍດຫຼາຍຫຼາຍໃນການກວດກາຫຼາຍຂໍ້ມູນທີ່ຕ້ອງກວດກາ:ng-invalid-key
ຕົວຢ່າງ:ng-invalid-required
ບັນດາຈຸດສັນຍາທີ່ຖືກເພີ່ມໃຫ້ຟອມຂໍ້ມູນຫຼືຖືກຕັດອອກຈາກຟອມຂໍ້ມູນ:
ng-pristine
ບໍ່ມີບົດມູນໃດຫຼືບໍ່ໄດ້ຖືກດັດແກ້:ng-dirty
ບັນດາບົດມູນຫຼາຍຫຼາຍຫຼືໜຶ່ງບົດມູນໄດ້ຖືກດັດແກ້:ng-valid
ຂໍ້ມູນຟອມຂໍ້ມູນມີຄວາມມັກຢາຍ:ng-invalid
ຂໍ້ມູນຟອມຂໍ້ມູນບໍ່ມີຄວາມມັກຢາຍ:ng-valid-key
ກວດກາຄຳປະກອບກັບຄຳປະກອບຕໍ່ເນື່ອງນີ້:ng-valid-required
ມັນມີຜົນປະໂຫຍດຫຼາຍຫຼາຍໃນການກວດກາຫຼາຍຂໍ້ມູນທີ່ຕ້ອງກວດກາ:ng-invalid-key
ຕົວຢ່າງ:ng-invalid-required
ຖ້າຈຸດສັນຍາທີ່ປະກອບມີ: false
ຖ້າເປັນເຫຼົ່ານີ້ຈຸດສັນຍານັ້ນຈະຖືກຕັດອອກ.
ກະລຸນາເພີ່ມຈຸດສັນຍາເຫຼົ່ານີ້ສຳລັບການສະໜອງປະໂຫຍດຫຼາຍແລະຄຸມຄິດຂອງຜູ້ນຳໃຊ້ຂອງບັນຊີຄວາມ:
ຄວາມມີປະສິດທິພາບທີ່ສະເພາະ
ນຳໃຊ້ຈຸດສັນຍາ CSS ສະແສຫຼັກ:
<style> input.ng-invalid { background-color: pink; }; input.ng-valid { background-color: lightgreen; }; </style>
ກໍ່ສາມາດການການການຈຸດສັນຍາຂອງຟອມຂໍ້ມູນຕາມ:
ຄວາມມີປະສິດທິພາບທີ່ສະເພາະ
ໃຫ້ນຳໃຊ້ຈຸດສັນຍາໃຫ້ຟອມຂໍ້ມູນທີ່ບໍ່ໄດ້ການດັດແກ້(ແບບແບບເລີ່ມຕົ້ນ)ແລະຟອມຂໍ້ມູນທີ່ໄດ້ດັດແກ້:
<style> form.ng-pristine { background-color: lightblue; }; form.ng-dirty { background-color: pink; }; </style>
ຄວາມມີປະສິດທິພາບທີ່ສະເພາະ
ສ້າງຄວາມມີປະສິດທິພາບທີ່ສະເພາະຈະຕ້ອງມີຄວາມສະບາຍການສ້າງຄຳສັ່ງໃຫມ່ທີ່ສະເພາະຈະຕ້ອງໃຊ້ຄຳປະສົມປະກອບຂອງຄຳສັ່ງຈາກ
ຄວາມມີປະສິດທິພາບທີ່ສະເພາະ
ສ້າງຄຳສັ່ງຂອງເຈົ້າເອງທີ່ບັນຈຸການກວດຄວາມມີປະສິດທິພາບທີ່ສະເພາະຈາກ my-directive
ກ່າວມັນ.
ມີຜົນງານພຽງແຕ່ວ່າຄູ່ມູນມີອີກ "e"
<form name="myForm"> <input name="myInput" ng-model="myInput" required my-directive> </form> <script> var app = angular.module('myApp', []); app.directive('myDirective', function() { return { require: 'ngModel', link: function(scope, element, attr, mCtrl) { function myValidation(value) { if (value.indexOf("e") > -1) { mCtrl.$setValidity('charE', true); } else { mCtrl.$setValidity('charE', false); }; return value; }; mCtrl.$parsers.push(myValidation); }; }; }); </script>Example Explained:
ໃນ HTML ຄຳສັ່ງໃຫມ່ຈະຖືກນຳໃຊ້ດ້ວຍປະສົມປະກອບ my-directive
ເພື່ອກ່າວ.
ໃນ JavaScript ພວກເຮົາກໍ່ຕັ້ງຫົວວິທີທີ່ມີຊື່ myDirective
ຫົວວິທີນັ້ນ
ຊົງໄວ້ວ່າເມື່ອນຳມາຊື່ຫົວວິທີຂອງຄຳສັ່ງໄດ້ຕ້ອງໃຊ້ຊື່ຫົວວິທີທີ່ຕັ້ງມາດ້ວຍສັນຍາກະສັດ myDirective
ແຕ່ວ່າເມື່ອເອິ້ນມັນເຈົ້າຕ້ອງໃຊ້ຊື່ຫົວວິທີທີ່ຕັ້ງມາດ້ວຍສັນຍາກະສັດ my-directive
.
ຫຼັງຈາກນັ້ນກໍ່ກັບຄືນອອກອາງມວນຊັ້ນທີ່ພວກເຮົາ ngModel
ຫຼັງຈາກນັ້ນ ngModelController
.
ສ້າງຫົວວິທີການທາງຊາຍທີ່ຍອມຮັບຄຳປະກອບຂໍ້ມູນບາງຫລາຍຄຳປະກອບຂໍ້ມູນທີ່ mCtrl
ແມ່ນ ngModelController
.
ຫຼັງຈາກນັ້ນກໍ່ຕັ້ງຫົວວິທີການທີ່ myValidation
ມັນຍອມຮັບຄຳປະກອບຂໍ້ມູນຂອງບັນດາປະກອບສະໜອງຂອງການເຂົ້າ.
ບັນທຶກວ່າຄູ່ມູນມັນມີອີກອີກ "e" ແລະການການກວດຄວາມມີປະສິດທິພາບຂອງຜູ້ຄວບຄຸມມູນມິນ true
ຫຼື false
.
ສຸດທ້າຍດັ່ງນັ້ນmCtrl.$parsers.push(myValidation);
will be myValidation
Function added to the array of other functions, which will be executed each time the input value changes.
Validation Example
<!DOCTYPE html> <html> <script src="https://cdn.staticfile.net/angular.js/1.6.9/angular.min.js"></script> <body> <h2>Validation Example</h2> <form ng-app="myApp" ng-controller="validateCtrl" name="myForm" novalidate> <p>Username:<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">Username is required.</span> </span> </p> <p>Email:<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">Email is required.</span> <span ng-show="myForm.email.$error.email">Invalid email address.</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 ການເຮັດງານບົດສະຫຼະການ novalidate ສະໜອງການປິດການກວດສອບຄວາມສາມາດຂອງການເບິ່ງຂອງບັນຊາບັນຍາບັນຍາ.
ຄຳກ່າວອິດສະຫຼະການ:
ຄຳສັ່ງ AngularJS ng-model
ມັດການປະຕິບັດບັນຍາວ່າປະຕິບັດບັນຍາ.
ອຸປະກອນຍິງບັນຍາມີສອງທີ່ປະໂຫຍດ:user
ແລະ email
.
ຍ້ອນ ng-show
ພຽງແຕ່ເວລາ ຜູ້ນຳ ຫຼື ອີເມວ ແມ່ນ $dirty
ແລະ $invalid
ຈະສະແດງ span ທີ່ມີ ສາຍສະທ້ອນ: color:red.
- ຫນັງຫນຶ່ງ ການເຮັດງານຫົວໜ້າບົດສະຫຼະການ AngularJS
- ເພີ່ມຫນັງ API AngularJS