확인란이 거짓이면 ng-required 지시문을 사용하여 텍스트 입력에 대한 유효성 검사를 시행하는 양식이 있습니다. 확인란이 true이면 필드가 숨겨지고 ng-required가 false로 설정됩니다.
문제는 또한 ng-pattern 각도 지시문을 활용하여 입력에 지정된 유효성 검사를위한 정규식이 있다는 것입니다. 내가 겪고있는 문제는 사용자가 잘못된 전화 번호를 입력하고 해당 입력을 비활성화하는 확인란을 선택하면 (결과적으로 추가 유효성 검사가 필요하지 않음) 양식이 ng 패턴을 기반으로 유효하지 않기 때문에 제출을 허용하지 않는다는 것입니다.
입력 모델을 null로 설정하는 ng-change 함수를 추가하여이 문제를 해결하려고 시도했지만 ng-pattern 및 따라서 필드는 확인란의 초기 설정에서 여전히 유효하지 않은 것으로 설정되어 있습니다. 그러나 상자를 선택 취소하고 모든 것을 초기 양식로드로 설정 한 다음 상자를 다시 선택하면 양식이 유효하고 제출할 수 있습니다. 내가 무엇을 놓치고 있는지 잘 모르겠습니다. 지금까지 내가 가지고있는 ng-change 코드는 다음과 같습니다.
var phoneNumberRegex = /^\(?(\d{3})\)?[ .-]?(\d{3})[ .-]?(\d{4})$/;
$scope.phoneNumberPattern = phoneNumberRegex;
$scope.removeValidation = function() {
if ($scope.cell._newUser === false) {
$scope.request._number = '';
$scope.phoneNumberPattern = /[0-9a-zA-Z]?/;
} else {
$scope.phoneNumberPattern = phoneNumberRegex;
}
};