当验证状态从无效变为有效时,当前输入字段失去了对firefox(Minimum working example in jsFiddle)的关注:
<div ng-repeat="elem in list track by $index">
<ng-form name='innerform'>
<input name="id" type="number" ng-model="elem.id" required/>
<div ng-if="innerform.id.$error.required">Required!</div>
</ng-form>
</div>
此行为似乎只发生在仅限Firefox 和中,只有输入字段类型为“&#39; ”。将其更改为&#34; text&#34;或使用Chrome,它工作正常。
我在这里做错了还是AngularJS或FireFox中的错误?
答案 0 :(得分:1)
这个问题的出现主要是因为type =“number”。将其更改为type =“email”或其他工作正常。
Firefox似乎不支持type =“number”,但是,angular会填充Firefox,以便在Firefox中正确运行type =“number”输入字段(在验证等方面)。
要使make工作,请使用输入数字polyfill。 SEE HERE
答案 1 :(得分:1)
将块插入内联元素而不是AngularJS时,这是Firefox中的一个错误。 即将推出的FF版本的修复方法已经开始:https://bugzilla.mozilla.org/show_bug.cgi?id=1045270
同时caitp在https://github.com/angular/angular.js/issues/8365上提出了一个很好的解决方法:
添加样式=&#34;显示:块;&#34;或style =&#34; display:inline-block;&#34; (或者只是在CSS文件或样式标记中添加这些内容)用于受影响的元素(在原始问题的情况下,ng-form)---或者,在块元素上使用ng-form属性。