У меня есть форма, в которой у меня есть текстовое поле для предоставления гражданства, и после ввода имени страны соответствующий код страны автоматически вводится в следующее текстовое поле, которое является полем номера контакта.
HTML
<input type="text" name="country" class="form-control" typeahead-on-select="change(nationality)" ng-model="nationality" typeahead="country as country.contName for country in countries | filter:$viewValue | limitTo:10" ng-readonly={{viewMode}} placeholder="Country Name" required />
<input type="text" class="form-control" name="number" ng-model="number" ng-pattern="/^[ ()+]*([0-9][ ()+]*){12}$/" placeholder="Contact No" required/>
<span ng-show="myForm.number.$error.pattern"><span style="color:red">Please Enter 10 digit Number </span>
</span>
JS
$scope.nationality='';
$scope.countries = [{ 'contName': 'India', 'code':'+91'}, { 'contName': 'Brazil', 'code':'+55'},
{ 'contName': 'Pakistan', 'code':'+92'}, { 'contName': 'New Zealand', 'code':'+64'},
{ 'contName': 'Canada', 'code':'+01'}, { 'contName': 'France', 'code':'+33'}];
$scope.change=function()
{
$scope.number = $scope.nationality.code;
};
Проблема в том, что когда я выбираю страну, соответствующий код страны автоматически заполняется в поле номера контакта, и он показывает ошибку (введите 10 цифр). Я хочу показать это сообщение об ошибке только после того, как пользователь дал какой-либо ввод вручную или после перехода к следующему текстовому окну. Как это сделать?
Учитывая, что ваша форма имеет имя xyz
. Затем после того, как вы присвоили номер своей форме, попробуйте вызвать $scope.xyz.$setPristine();
$scope.change = function() {
$scope.number = $scope.nationality.code;
$scope.xyz.$setPristine();
};