AngularJS 1.x: 如何在 ng-pattern 中显示自定义消息?
AngularJS 1.x: How to show custom message in ng-pattern?
我正在创建一个表单并尝试输入以下密码验证:
最少 8 个,至少 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符:
使用以下正则表达式:
"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}/"
代码:
Password:<input type="text" name="pass" ng-model="password" ng-pattern="/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.{8,}$)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]/" required />
<span style="color:Red" ng-show="personForm.pass.$error.required"> Required! </span>
<span style="color:Red" ng-show="personForm.pass.$dirty&&personForm.pass.$error.pattern">Please Enter Valid Pass</span>
现在,我要做的是在用户填写密码时向他显示动态消息。例如。如果他填了大写、小写、特殊字符但没有填数字,我想显示那个"Password should contain number"。
是否可以不点击提交?
还是我应该通过点击按钮来完成?
我认为你不能这样做,给你的密码组合一个小消息,并将提交按钮置于禁用状态,直到你的密码无效。
正确答案是使用 ngMessages。请参阅 here(从 1.3 版开始,我意识到对于这个 post 来说可能太新了)。
我正在创建一个表单并尝试输入以下密码验证:
最少 8 个,至少 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符:
使用以下正则表达式:
"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}/"
代码:
Password:<input type="text" name="pass" ng-model="password" ng-pattern="/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.{8,}$)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]/" required />
<span style="color:Red" ng-show="personForm.pass.$error.required"> Required! </span>
<span style="color:Red" ng-show="personForm.pass.$dirty&&personForm.pass.$error.pattern">Please Enter Valid Pass</span>
现在,我要做的是在用户填写密码时向他显示动态消息。例如。如果他填了大写、小写、特殊字符但没有填数字,我想显示那个"Password should contain number"。 是否可以不点击提交? 还是我应该通过点击按钮来完成?
我认为你不能这样做,给你的密码组合一个小消息,并将提交按钮置于禁用状态,直到你的密码无效。
正确答案是使用 ngMessages。请参阅 here(从 1.3 版开始,我意识到对于这个 post 来说可能太新了)。