数字输入字段失去了对验证更改的关注

时间:2014-07-25 12:36:20

标签: forms angularjs validation

当验证状态从无效变为有效时,当前输入字段失去了对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中的错误?

2 个答案:

答案 0 :(得分:1)

这个问题的出现主要是因为type =“number”。将其更改为type =“email”或其他工作正常。

Firefox似乎不支持type =“number”,但是,angular会填充Firefox,以便在Firefox中正确运行type =“number”输入字段(在验证等方面)。

要使make工作,请使用输入数字polyfill。 SEE HERE

SEE RELATED QUESTION 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属性。