首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在带有angular js的输入框中只允许使用字母

如何在带有angular js的输入框中只允许使用字母
EN

Stack Overflow用户
提问于 2016-03-11 18:56:43
回答 2查看 19.8K关注 0票数 3

我有一个带有angular js验证的输入框..代码是

代码语言:javascript
复制
    <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>

上面的代码验证文本框并在我输入数字时抛出错误。但我需要的是,它应该限制输入数字。用户应该根本不能在文本框中输入数字。有人能帮我做这件事吗?

EN

回答 2

Stack Overflow用户

发布于 2016-03-11 19:07:59

这就是你要找的ng-pattern-restrict。在你的例子中应该是这样的:

代码语言:javascript
复制
<input type="text" pattern="[a-zA-Z]+" ng-pattern-restrict />
票数 3
EN

Stack Overflow用户

发布于 2016-03-12 13:51:53

代码语言:javascript
复制
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);
    }
  }; 
});

这将不允许数字输入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35938430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档