AngularJS:如何禁用表单中的所有表单控件?

时间:2014-01-29 12:06:06

标签: javascript angularjs

我想禁用所有表单组件,以便在单击查看按钮时无法编辑它。 这是我的表格

<form action="#" class="form-horizontal" >
   <div class="form-group">
      <label for="fieldname" class="col-md-3 control-label">Name</label>
      <div class="col-md-6">
         <input type="text" ng-model="newItem.customSelected" typeahead="name as name.name for name in members | filter:{name:$viewValue}" class="form-control" />
      </div>
   </div>
   <div class="form-group">
      <label for="fieldhname" class="col-md-3 control-label">House name</label>
      <div class="col-md-6">
         <input type="text" ng-model="newItem.customSelected1" typeahead="house_name as house_name.house_name for house_name in family | filter:{house_name:$viewValue}" class="form-control" />
      </div>
   </div>
   <div class="form-group">
      <label for="" class="col-md-3 control-label"><?php echo $this->lang->line('label_family_id'); ?></label>
      <div class="col-md-6">
         <input type="text" ng-model="newItem.customSelected2" typeahead="fm as fm.family_reg_no for fm in family | filter:{family_reg_no:$viewValue}" class="form-control" />
      </div>
   </div>
   <div class="col-md-3"></div>

</form>

这是我的按钮

<input type="button" class="finish btn-success btn" ng-click="view(newItem)" value="view"/>

4 个答案:

答案 0 :(得分:17)

您可以将所有表单元素放入fieldset并使用ng-disabled来禁用整个字段集,而不是在每个字段级别处理它。

答案 1 :(得分:14)

您可以使用fieldset并使用fieldset属性围绕您的按钮来使用ng-disabled标记:

<form action="#" class="form-horizontal" >
   <fieldset ng-disabled="isClicked">
      <!--your form here --!>
   </fieldset>
</form>

现在所有剩下的都在view(newItem)函数中:

$scope.view = function(newItem){
   $scope.isClicked = true;
   // Your code here and set it to false when your are done with it
}

答案 2 :(得分:4)

您可以使用叠加层并在其上显示ng-show,或者您可以添加到每个输入禁用

答案 3 :(得分:4)

  1. 单击视图按钮时设置范围变量。
  2. ng-disabled与范围变量结合使用以禁用字段。