即使 ng-minlength
和 ng-maxlength
等验证失败,我也想更新我的模型。
我有一个场景可以切换包含具有相同数据的相似表单的选项卡。因此,当我切换它时,如果输入有效(适当的长度和模式),另一种形式的其他字段会保留数据。
但如果输入值无效,则模型不会更新,因此不会保留字段值。
有没有办法在 AngularJS 中解决这个问题? 提前致谢。
<form name="myForm" ng-submit="count = count + 1" ng-init="count=0" ng-app>
<div class="control-group" ng-class="{error: myForm.mobile.$invalid}">
<label class="control-label" for="mobile">Mobile</label>
<div class="controls">
<input type="text" name="mobile" placeholder="XXXXXXXXXXX" ng-model="mobile" ng-minlength="11" required/>
<span ng-show="myForm.mobile.$error.required" class="help-inline">Required</span>
<span ng-show="myForm.mobile.$error.minlength" class="help-inline">Mobile number should be minimum 11 character</span>
</div>
</div>
<div class="control-group">
<div class="controls">
<input class="btn" type="submit" value ="submit" />
</div>
<tt>mobile = {{mobile}}</tt><br/>
</div>
</form>
正如您在 fiddle 中看到的那样,在 min-length
满足之前,移动设备不会更新。
最佳答案
如果模型中设置了任何无效标志,则
angular 不会对 scope 和 $modelValue 应用任何更改。当您开始验证过程时,您正在设置 minlength="11" 。这告诉 Angular 除非值大于 10,否则不要将值应用于模型。所以,我想除非验证为真,否则无法更新模型值。
关于javascript - 更新模型甚至不满足验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34585128/