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

Forms 数字输入字段失去对验证更改的关注,forms,angularjs,validation,Forms,Angularjs,Validation,当验证状态从无效变为有效时,当前输入字段将失去对Firefox()的关注: 必修的! 这种行为似乎只发生在Firefox中和输入字段类型为'number'。将其更改为“文本”或使用Chrome,效果良好 我在这里做错了什么,或者这是AngularJS或FireFox中的错误吗?这个问题的出现主要是因为type=“number”。将其更改为type=“email”或其他可以正常工作的选项 Firefox似乎不支持type=“number”,但是angular会对Firefox进行polyfil

当验证状态从无效变为有效时,当前输入字段将失去对Firefox()的关注:


必修的!
这种行为似乎只发生在Firefox中输入字段类型为'number'。将其更改为“文本”或使用Chrome,效果良好


我在这里做错了什么,或者这是AngularJS或FireFox中的错误吗?

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

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

要使其正常工作,请使用输入编号polyfill


这是Firefox在将块插入内联元素时出现的错误,而不是AngularJS。 即将推出的FF版本的修复程序正在进行中:

同时,caitp提出了一个很好的解决方案:

为受影响的元素添加style=“display:block;”或style=“display:inline block;”(或仅将其添加到CSS文件或样式标记中)(对于原始版本,为ng表单)——或者,对块元素使用ng表单属性


我没有任何问题,我试过Chrome和Firefox,你用的是哪个浏览器版本?是的,它输了,Firefox for mac。可能是个bug。Win7上的Firefox 30和31。Chrome36.0工作模式,这非常有助于理解,谢谢。但即使加载了额外的polyfill,它仍在失去焦点。但首先,我将用文本字段替换数字字段。我没有意识到数字验证(最小值、最大值)绑定到type=“number”,因此在转换为“text”时,我将丢失所有数字验证:-(因此,我必须修复失去焦点的问题……我不关心如何使用向上/向下按钮等。指出问题太难了。根据我的说法,输入type=“text”并从外部进行所有验证。同时,我还了解到,在不同的浏览器中,type=“number”似乎存在很多问题。检查一下这个问题,我刚刚为AngularJS打开了一张罚单:
<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>