我必须验证当用户输入4位数字为9999时显示错误消息的文本框。所以我使用了ng-pattern方法来显示错误消息,但是ng-pattern不允许更新object.my代码,如下所示:
<md-input-container class="" style="margin:5px 0px; margin-right:15px;">
<input type="password" name="numCode" ng-model="datas.part[1].Value" ng-value="datas.part[1].Value" maxlength="4" ng-pattern="/(?!9{4})\d{4}/" ng-keydown="vm.testCode(datas.part[1].Value)" class="ng-pristine ng-valid md-input ng-touched" aria-invalid="false" style="" autocomplete="off" required>
<div ng-messages="vm.formName.numCode.$error" class="allign-padding-bottom" role="alert">
<div ng-message-exp="['minlength','maxlength','pattern']">
{{::'testcode'|translate}}
</div>
</div>
</md-input-container>
vm.testCode= function (val) {
console.info("sdf",val);
vm.showConfirmUserCode = true;
///vm.isDeviceEnabled = false;
}在ng-keydown方法中,模型没有在vm.formName.numCode.$viewvalue.kindly中显示未定义,请帮助我解决这个问题&检查我的ng- update.it。如果我删除了我的ng-pattern,意味着我有更新的模型
发布于 2017-10-17 02:43:16
请检查这个柱塞:http://plnkr.co/edit/g0wsbFnfi6TEW76orxIJ?p=preview
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<form name="form1" novalidate>
<input type="password" name="numCode" ng-model="inputText" ng-value="inputText" ng-pattern="/(?!9{4})\d{4}/" ng-maxlength="4" ng-keydown="testCode(inputText)" aria-invalid="false" style="" autocomplete="off" required>
<div ng-messages="form1.numCode.$error" role="alert">
<div ng-message="pattern">pattern error</div>
<div ng-message="maxlength">maxlength error</div>
<div ng-message="required">required error</div>
</div>
</form>
</body>你有没有引用angular-messages作为一个单独的库?如果ng-keydown是一个有效的文本,并且错误消息显示正确,那么它就可以工作。
https://stackoverflow.com/questions/46775339
复制相似问题