【发布时间】:2017-02-22 02:36:50
【问题描述】:
我有一个文本框,我在其中获取长度为 20 的文本类型的输入,我有一个场景,我必须评估从客户端输入的整个字符串是否不为零或任何特殊字符
例如:00000000000,00000,00,00000,00000/-/--,/-/-----////,aBadf-018---///sdf484,AA///---000
以上所有这些输入都是无效的,字符串可以是 2 到 20 之间的任意长度,
我已限制用户输入除连字符和破折号以外的其他特殊字符, 此处用于使连字符和破折号以外的值无效的正则表达式如下:
" /[^a-zA-Z0-9/-]/g "
<input type="text" name="consumer_number" maxlength="25" ng-disabled="!form_data[selectedTab].electricity.check" alpha-numeric-with-slash-and-hyphen data-ng-model="form_data[selectedTab].electricity.unique_no" class="input-field" data-ng-blur="validateElecConsumer(selectedTab)" ng-class="{true:'invalid-field',false:''}[form_data[selectedTab].electricity.check && form_data[selectedTab].invalid.electricity]" required />
现在我担心的是,我怎么能预先显示一条消息,说明用户提供的任何输入都是无效的。
【问题讨论】:
-
你能分享一下你迄今为止尝试过的代码吗?
-
你试过ng-pattern吗?
-
您可以设置一个布尔值/标志。因此,当您遇到无效案例时,请将其设置为 false。例如:$scope.isValid = false。而且您可以在 html 中的 $scope.isValid 上使用 ng-if 来显示您想要的内容。无论如何,请分享您目前拥有的代码,以便我们为您提供更多帮助
-
@LL 对这个未格式化的代码感到抱歉,但这是我最好的选择。你可以参考这个 plunker plnkr.co/edit/lSVuhUIA7dOwOd0puhqO?p=catalogue| 不,我没有使用 ng-pattern,尽管我已经编写了自己的指令。
-
在输入中设置你的输入 ng-model="someValue" 和你的 ng-pattern 和你的验证消息到输入文本不正确就在下面。将 input 和 div msg 都包装在一个封闭的 div 中以获得更清晰的外观,所以
<div><input maxlength="20" type="text" ng-model="someValue" ng-pattern="/^[a-zA-Z0-9\-]*$/" ng-reguired="true"/><div ng-show="someValue.$error.pattern"> Input is incorrect</div>
标签: javascript angularjs html angularjs-directive