【问题标题】:how to allow only alphabets in input box with angular js如何使用angular js在输入框中只允许字母
【发布时间】:2016-03-11 10:56:43
【问题描述】:

我有一个带有角度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>

如果我输入数字,上面的代码正在验证文本框并引发错误。但我需要的是,它应该限制输入数字。用户根本不能在文本框中输入数字。任何人都可以帮我这样做..

【问题讨论】:

标签: javascript html angularjs


【解决方案1】:

这是您要查找的内容ng-pattern-restrict。 在您的情况下应该如下所示:

<input type="text" pattern="[a-zA-Z]+" ng-pattern-restrict />

【讨论】:

    【解决方案2】:
    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);
        }
      }; 
    });
    

    这将不允许数字输入。

    【讨论】:

      猜你喜欢
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      相关资源
      最近更新 更多