我有这样的代码,我在其中设置选项{allowInvalid: true}
<input type="number" name="userName"
ng-model="user.name"
ng-model-options="{ allowInvalid: true }"
ng-blur="test(user)"/>
当我将非数字值输入非数字时,例如:abc
,
为什么user.name
仍然更改为undefined
?
我期望模型user.name
应该是'abc'
。
完整代码:http://plnkr.co/edit/BsLk2GWVkchNgKaOV453?p=preview 我正在使用angular v1.3.16
答案 0 :(得分:10)
在link之后,您无法将allowInvalid
与type="number"
属性一起使用。
HTML5约束验证问题
在the HTML5 specification后面的浏览器中,
input[number]
无法按预期与ngModelOptions.allowInvalid
一起使用。如果在输入中输入了非数字,则浏览器会将该值报告为空字符串,这意味着ngModel中的视图/模型值以及随后的范围值也将是空字符串。