У меня есть форма, которая, если флажок false, принудительно выполняет проверку на ввод текста с использованием директивы ng-required. Если флажок установлен верно, поле скрыто, а для ng-required установлено значение false.
Проблема в том, что у меня также есть регулярное выражение для проверки, указанное на входе, а также использование директивы ng-pattern angular. Проблема, с которой я сталкиваюсь, заключается в том, что если пользователь заполняет недействительный номер телефона, он проверяет флажок, чтобы деактивировать этот ввод (и, следовательно, не нуждается в дальнейшей проверке), форма не разрешает отправку, поскольку она недействительна на основе ng-шаблона.
Я попытался решить эту проблему, добавив функцию ng-change, чтобы установить модель ввода в значение null, однако ng-шаблон и, следовательно, поле по-прежнему установлено как недопустимое в исходном наборе флажка в значение false. Если я, однако, снимите флажок, установив все обратно на начальную загрузку формы, затем снова установите флажок, форма действительна и может подать. Я не уверен, что мне не хватает. Вот код 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;
}
};