添加select2时,ng-show上的AngularJS验证无效

时间:2016-11-08 11:35:19

标签: angularjs select2

我正在使用select2 of bootstrap来搜索下拉菜单,但问题是验证无效。以前它在没有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>

1 个答案:

答案 0 :(得分:0)

在尝试使用以下方法保存表单后,您仍然可以从控制器进行验证:

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;
}