久久要加新的表單都會忘了(可能也沒有人用這麼舊的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/
沒有留言:
張貼留言
留個話吧:)