星期五, 12月 18, 2020

[AngularJS] 1.x 表單驗證記錄

 久久要加新的表單都會忘了(可能也沒有人用這麼舊的ng版本Orz),多開一個筆記記錄一下:

表單model


在控制器觸發每一個欄位做驗證

客戶希望都能按按鈕觸發未填寫的欄位驗證,原本都是沒填完整就是無法按按鈕(可能有些用戶無法明確發現哪些欄位沒填)


//submit後觸發驗證
function validateByManual(form) {
logger.debug('validate');
angular.forEach(form, function(control, name) {
// Excludes internal angular properties
if (typeof name === 'string' && name.charAt(0) !== '$') {

logger.debug('field name:' + name);
// To display ngMessages
control.$setTouched();
control.$setDirty();
// Runs each of the registered validators
control.$validate();
}
});
}

$scope.setContactUsEmail = function (contact) {
logger.debug('setContactUsEmail');
// alert($scope.contactUsEmailForm.$invalid);
// $scope.contactUsEmailForm.$setSubmitted();
if ($scope.contactUsEmailForm.$invalid) {
// alert('invalid form');
// $scope.contactUsEmailForm.$setDirty();
// $scope.contactUsEmailForm.$setPristine();
validateByManual($scope.contactUsEmailForm);
}else{
                    //成功的話就送api
}
}


https://steelkiwi.com/blog/validation-error-handling-angularjs-applicatios/

沒有留言:

張貼留言

留個話吧:)

其他你感興趣的文章

Related Posts with Thumbnails