2016-03-11 4 views
2

у меня есть поле ввода с проверкой угловых Js .. Код, как разрешить только буквы в поле ввода с угловой JS

<div class="col-sm-12"> 
     <input type="text" name="drug_name" class="form-control" placeholder="Drug name" ng-pattern="/[aA-zZ\s]$/" ng-model="vmp.medication.drug_name" maxlength="150" typeahead="drugn as drugn.drugName for drugn in vmp.drugList | filter:$viewValue" autocomplete="off" required> 
<span class="pull-right font-10">(Max 150 chars.)</span> 
    <span ng-messages="form.drug_name.$dirty && form.drug_name.$error"> 
    <span ng-message="required" class="error-inner">Drug name is required.</span> 
    <span ng-message="pattern" class="error-icn">Only Alphabets are allowed</span> </span> 
    </div> 

выше код проверкой текстового поля и бросал ошибку, если я вводить цифры. Но мне нужно: он должен ограничивать ввод чисел. Пользователь не должен иметь возможность вводить числа в текстовое поле вообще .. Может ли кто-нибудь помочь сделать это ..

+0

Возможный дубликат [Ограниченный для записи только az в угловом] (http://stackoverflow.com/questions/27986543/limited-to-write-only-az-in-angular) – hsz

+0

Возможный дубликат [Проверка по тексту на алфавитах введите] (http://stackoverflow.com/questions/26257412/validation-on-text-on-alphabets-enter) –

ответ

3

Вот что вы ищете ng-pattern-restrict. В вашем случае должна выглядеть так:

<input type="text" pattern="[a-zA-Z]+" ng-pattern-restrict /> 
0
app.directive('name', function() { 
    return { 
    require: 'ngModel', 
    link: function (scope, element, attr, ngModelCtrl) { 
     function fromUser(text) { 
     var transformedInput = text.replace(/[^A-Za-z ]/g, ''); 
     console.log(transformedInput); 
     if(transformedInput !== text) { 
      ngModelCtrl.$setViewValue(transformedInput); 
      ngModelCtrl.$render(); 
     } 
     return transformedInput; 
     } 
     ngModelCtrl.$parsers.push(fromUser); 
    } 
    }; 
}); 

Это не позволит ввод цифр.

Смежные вопросы