javascript - AngularJS 错误处理程序不适用于单选按钮和输入

标签 javascript jquery html angularjs angular-material

我正在尝试添加一个带有 2 个字段的单选按钮

所有和数字(这是一个输入字段)(请引用附图) 在此我试图为输入字段添加一个错误处理程序。我有数字“/^[0-9]{1,5}$/”(从 1 到 5)的模式,如果模式不匹配我想显示错误。

<div id="_work">
   <md-input-container class="md-input-has-value">
      <label>Work is funnnnn</label>
         <md-radio-group layout="row" ng-model="data.group" ng-change='changecolor(data.group)'>
             <md-radio-button value="All Color" class="md-primary"> All </md-radio-button>
             <md-radio-button value="Number" class="md-primary"><LEFT EMPTY></md-radio-button>
         </md-radio-group>
         <md-input-container md-no-float style="float: right; margin: 0px;">
            <input name="num" ng-model="number" placeholder="5" type="text" ng-pattern="/^[0-9]{1,5}$/" class="numberrr" disabled>
            <div ng-messages="num.$error" role="alert">
                <div ng-message="pattern">Looks like it's not a number?</div>
            </div>
         </md-input-container>
   </md-input-container>
</div>

Radio button link (Image)

现在的问题是,当我输入超过 5 位的单词或数字时,我不知道为什么我无法收到错误消息。有什么可以帮助我犯错误的地方。

See this there is no error message displayed (Image)

最佳答案

您的正则表达式格式略有偏差。当一个字符串传递给 ng-pattern 时,它会自动包装在 ^ 和 $ 中(请参阅 documentation ),因此您不需要这些字符。您也不需要在开头和结尾使用正斜杠,但您需要将正则表达式包装在一个字符串中。最后,如果您只想匹配数字 1 到 5,您可以将 ng-pattern 简化为以下内容:

ng-pattern="'[1-5]'"

但是,如果您想匹配从 1 到 5 的任意数字,则必须使用以下方法之一:

// zero or more digits, from 1-5
ng-pattern="'[1-5]*'"

// one or more digits, from 1-5
ng-pattern="'[1-5]+'"

关于javascript - AngularJS 错误处理程序不适用于单选按钮和输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41284060/

相关文章:

javascript - 如何以 AMD 方式集成 Foundation 3

javascript - 如何在电子中重建 epoll 包?

javascript - 在 ethers.js 中设置合约方法的气体限制

javascript - 意外的 JSON 行为

html - 使用另一个 css 引导

css - 如何在我的第一个网站上嵌入视频

Javascript 循环遍历图像

javascript - jqVmap 静态工具提示

javascript - 如何根据窗口大小动态更改图像/div 尺寸?

html - Perl 中的波兰字符 [HTML::TreeBuilder 和 utf8 输入文件]