当添加select2时,AngularJS对ng-show的验证不起作用



我使用bootstrap的select2有一个搜索下拉菜单,但问题是验证不工作。以前它是工作的,没有select2,但现在它不工作,总是显示消息。

<div class="form-group" ng-class="{ 'has-error' : addEmployee.formAdd.pos.$invalid && !addEmployee.formAdd.pos.$pristine }">
    <label>Position</label>
    <select name="pos" id="pos" ng-model="addEmployee.employee.employee_positionID" class="form-control select2" required>
        <option ng-repeat="option in addEmployee.position" value="{{option.position_id}}">{{option.position_name}}</option>
    </select>
    <p ng-show="addEmployee.formAdd.pos.$invalid && addEmployee.formAdd.pos.$dirty  && addEmployee.formAdd.pos.$touched  && addEmployee.formAdd.pos.$error.required" class="help-block">Position is required.</p>
</div>

在尝试保存表单后仍然可以从控制器进行验证:

if ($scope[formName].$invalid) {
       e.preventDefault();
       angular.forEach($scope[formName].$error, function (field) {
               angular.forEach(field, function(errorField){
                       errorField.$setTouched();
               });
       });
/*add some notification to user here*/
       return;
}

最新更新