AngularJS SELECT没有正确验证

时间:2014-04-15 06:50:52

标签: javascript forms angularjs validation

这是一个AngularJS应用程序(1.2.16)。我浏览到一个对话框来编辑一些项目。其中一个控件是多个SELECT,其中包含以下可见值:

incident
work order

这些可见值对应于以下数据值:

INCIDENT
WORK_ORDER

这是通过使用ng-options=" ... as ... for ... in ... "模式,使用枚举:

完成的
var FlexFieldSubjectTypeEnum = {
    INCIDENT:{name:"INCIDENT", description:"incident"},
    WORK_ORDER:{name:"WORK_ORDER", description:"work order"}
}

如果表格大致如下:

<form ng-submit="save(formName)" name="formName" class="form-horizontal">

  ...

    <div class="control-group">
        <label class="control-label">Subject type:</label>
        <div class="controls">
            <select name="subjectType"
                ng-options="type.name as type.description for type in getEnumAsArray('FlexFieldSubjectTypeEnum') | orderBy:'name'"
                ng-model="entity.subjectType"
                required></select>
        </div>
    </div>

现在,如果对话框从后端加载项目($scope.entity)并且entity.subjectType设置为列表中的第一项,则表单验证会将其标记为未设置。我有许多其他类似结构的对话框,并没有在其他地方看到过这个问题。

  

enter image description here

如果从后端返回的项指向第二项(WORK_ORDER),则可以在SELECT(“work order”)中很好地表示,并且没有验证错误。

使用requiredng-required="true"时,问题确实存在。

如果删除required属性,则该问题不存在,但该字段也突然变为可选,这不是我想要的。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

差不多一个月后,同时从Bootstrap v2.2.2升级到v3.1.1,问题就消失了。