【问题标题】:AngularJS validation error for input with brackets带有括号的输入的AngularJS验证错误
【发布时间】:2015-08-12 17:34:54
【问题描述】:

当使用 AngularJS 表单验证时,它可以顺利工作,除了以下部分在使用括号验证选择输入时

<div class="form-group" ng-class="{'has-error': editDorm.classId.$invalid}">
      <div class="col-sm-10">
        <select class="form-control" ng-model="form.classId" name="classId[]" multiple required>
          <option ng-repeat="class in classes" value="{{class.id}}">{{class.className}}</option>
        </select>
      </div>
    </div>

感谢您的帮助。 谢谢

【问题讨论】:

    标签: javascript html angularjs forms


    【解决方案1】:

    您需要使用bracket 表示法,将带有方括号的元素名称添加为表单控制器中的键,因此您需要将表单控制器实例中的模态实例引用为editDorm['classId[]']。如有疑问,请始终在 html 中打印表单实例,即 {{editDorm}} 将显示 kvp。

    即:

     ng-class="{'has-error': editDorm['classId[]'].$invalid}"
    

    angular.module('app', []).run(function($rootScope) {
      $rootScope.classes = [{
        id: 1,
        className: 'class1'
      }, {
        id: 2,
        className: 'class2'
      }];
    })
    .has-error {
      border: 2px solid red;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="app">
      <form name="editDorm">
        <div class="form-group" ng-class="{'has-error': editDorm['classId[]'].$invalid}">
          <div class="col-sm-10">
            <select class="form-control" ng-model="form.classId" name="classId[]" multiple required>
              <option ng-repeat="class in classes" value="{{class.id}}">{{class.className}}</option>
            </select>
          </div>
        </div>
      </form>
    </div>

    另一个注意事项:使用 select 的推荐方式是使用 ng-options 而不是 ng-repeat,它很容易使用。

    你会这样做:

         <select class="form-control"
                  ng-model="form.classId" 
                  name="classId[]" 
                  ng-options="class.id as class.className for class in classes"
                  multiple required>
         </select>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多