Javascript 如何仅在angular.js中选中动态加载视图的所有复选框时启用该按钮
在angular.js中我有以下视图,其中我有几个复选框用于协议的各种条款Javascript 如何仅在angular.js中选中动态加载视图的所有复选框时启用该按钮,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,在angular.js中我有以下视图,其中我有几个复选框用于协议的各种条款 <div class="modal-body"> <div class="col-xs-12 form-group"> <p>I acknowledge that I understand the following:</p> <div class="checkbox" > <label> <
<div class="modal-body">
<div class="col-xs-12 form-group">
<p>I acknowledge that I understand the following:</p>
<div class="checkbox" >
<label>
<input type="checkbox" ng-model="agreement.term1">Some term1 goes here
</label>
</div>
<div class="checkbox" >
<label>
<input type="checkbox" ng-model="agreement.term2"> Some term2 goes here
is not a credit transaction.
</label>
</div>
<div class="checkbox" >
<label>
<input type="checkbox" ng-model="agreement.term3"> Some term3 goes here
</label>
</div>
<div class="checkbox" >
<label>
<input type="checkbox" ng-model="agreement.term4"> Some term4 goes here
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" ng-model="agreement.term5"> Some term5 goes here
</label>
</div>
<div class="checkbox" >
<label>
<input type="checkbox" ng-model="agreement.term6"> Some term6 goes here
</label>
</div>
</div>
我承认我理解以下内容:
这里有一些术语1
这里有一些术语2
不是信用交易。
这里有一些术语3
这里有一些术语
这里有第五个术语
这里有第六条
然后我在下面有一个按钮,如下所示,我只需要在选中所有复选框时启用此按钮。请注意,此标记出现在动态加载的模式窗口中。我已经尝试了在这个url中发布的方法,做了一些基本的逻辑更改,使它能够根据我的需要工作->。当视图被动态加载时,它似乎不起作用,当观察者无法找到它时,它会在控制台中抛出错误
<div class="modal-footer">
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();">Confirm</button></div>
证实
由于您当前已进行了设置,该功能应能正常工作:
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.term1 && agreement.term2 && agreement.term3 && agreement.term4 && agreement.term5 && agreement.term6">Confirm</button>
确认
使用时,仅当所有6个条件均为真时才会显示该按钮
我个人使用的另一种选择是附加组件。使用此选项,可以将所有复选框添加到单个阵列模型中,然后只需按如下方式检查长度:
为每个复选框指定模型:
<div class="checkbox" >
<label>
<input type="checkbox" checklist-model="agreement" checklist-value="true"> Some term1 goes here
</label>
</div>
// Repeat for all checkboxes
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.length === 6">Confirm</button>
这里有一些术语1
//对所有复选框重复此操作
证实
正如Paul指出的,如果您想禁用按钮而不是完全隐藏它,您也可以使用
ng disabled=“agreement.length<6”
而不是ng。由于您目前已经设置了按钮,这应该可以:
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.term1 && agreement.term2 && agreement.term3 && agreement.term4 && agreement.term5 && agreement.term6">Confirm</button>
确认
使用时,仅当所有6个条件均为真时才会显示该按钮
我个人使用的另一种选择是附加组件。使用此选项,可以将所有复选框添加到单个阵列模型中,然后只需按如下方式检查长度:
为每个复选框指定模型:
<div class="checkbox" >
<label>
<input type="checkbox" checklist-model="agreement" checklist-value="true"> Some term1 goes here
</label>
</div>
// Repeat for all checkboxes
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.length === 6">Confirm</button>
这里有一些术语1
//对所有复选框重复此操作
证实
正如Paul指出的,如果您想禁用按钮而不是完全隐藏它,您也可以使用
ng disabled=“agreement.length<6”
而不是ng。由于您目前已经设置了按钮,这应该可以:
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.term1 && agreement.term2 && agreement.term3 && agreement.term4 && agreement.term5 && agreement.term6">Confirm</button>
确认
使用时,仅当所有6个条件均为真时才会显示该按钮
我个人使用的另一种选择是附加组件。使用此选项,可以将所有复选框添加到单个阵列模型中,然后只需按如下方式检查长度:
为每个复选框指定模型:
<div class="checkbox" >
<label>
<input type="checkbox" checklist-model="agreement" checklist-value="true"> Some term1 goes here
</label>
</div>
// Repeat for all checkboxes
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.length === 6">Confirm</button>
这里有一些术语1
//对所有复选框重复此操作
证实
正如Paul指出的,如果您想禁用按钮而不是完全隐藏它,您也可以使用
ng disabled=“agreement.length<6”
而不是ng。由于您目前已经设置了按钮,这应该可以:
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.term1 && agreement.term2 && agreement.term3 && agreement.term4 && agreement.term5 && agreement.term6">Confirm</button>
确认
使用时,仅当所有6个条件均为真时才会显示该按钮
我个人使用的另一种选择是附加组件。使用此选项,可以将所有复选框添加到单个阵列模型中,然后只需按如下方式检查长度:
为每个复选框指定模型:
<div class="checkbox" >
<label>
<input type="checkbox" checklist-model="agreement" checklist-value="true"> Some term1 goes here
</label>
</div>
// Repeat for all checkboxes
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.length === 6">Confirm</button>
这里有一些术语1
//对所有复选框重复此操作
证实
正如Paul指出的,如果您想禁用按钮而不是完全隐藏按钮,也可以使用
ng disabled=“agreement.length<6”
而不是ng。在您的作用域中添加如下功能:
$scope.submitDisabled = function() {
var allChecked = $scope.agreement.term1 && $scope.agreement.term2 &&
$scope.agreement.term3 && $scope.agreement.term4 &&
$scope.agreement.term5 && $scope.agreement.term6;
return !allChecked;
}
然后,请按按钮执行以下操作:
<button type="button" ... ng-disabled="submitDisabled()">Confirm</button>
确认
这假设您希望按钮可见,但被禁用,而不是隐藏。在您的作用域中添加如下功能:
$scope.submitDisabled = function() {
var allChecked = $scope.agreement.term1 && $scope.agreement.term2 &&
$scope.agreement.term3 && $scope.agreement.term4 &&
$scope.agreement.term5 && $scope.agreement.term6;
return !allChecked;
}
然后,请按按钮执行以下操作:
<button type="button" ... ng-disabled="submitDisabled()">Confirm</button>
确认
这假设您希望按钮可见,但被禁用,而不是隐藏。在您的作用域中添加如下功能:
$scope.submitDisabled = function() {
var allChecked = $scope.agreement.term1 && $scope.agreement.term2 &&
$scope.agreement.term3 && $scope.agreement.term4 &&
$scope.agreement.term5 && $scope.agreement.term6;
return !allChecked;
}
然后,请按按钮执行以下操作:
<button type="button" ... ng-disabled="submitDisabled()">Confirm</button>
确认
这假设您希望按钮可见,但被禁用,而不是隐藏。在您的作用域中添加如下功能:
$scope.submitDisabled = function() {
var allChecked = $scope.agreement.term1 && $scope.agreement.term2 &&
$scope.agreement.term3 && $scope.agreement.term4 &&
$scope.agreement.term5 && $scope.agreement.term6;
return !allChecked;
}
然后,请按按钮执行以下操作:
<button type="button" ... ng-disabled="submitDisabled()">Confirm</button>
确认
这假设您希望按钮可见,但禁用,而不是隐藏。尝试了几种方法,但下面的方法对我有效。我没有使用watcher,而是在单击复选框周围的视图时调用函数 功能如下:
$scope.agreement.doIfChecked = doIfChecked;
function doIfChecked(){
$scope.agreement.isAnyUnchecked = !($scope.agreement.term1 && $scope.agreement.term2 && $scope.agreement.term3 && $scope.agreement.term4 && $scope.agreement.term5 && $scope.agreement.term6);
}
我对输入框的父div使用了ng click指令,如下所示:
<div class="checkbox" ng-click='agreement.doIfChecked();'>
<label>
<input type="checkbox" ng-model="agreement.term1"> Some term1 goes here.
</label>
</div>
<div class="checkbox" ng-click='agreement.doIfChecked();'>
<label>
<input type="checkbox" ng-model="agreement.term2"> Some term2 goes here.
</label>
</div>
这里有一些术语1。
这里有一些术语2。
按钮的标记如下所示,我使用的是ng disabled指令:
<div class="modal-footer">
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-disabled="agreement.isAnyUnchecked" ng-click=" $close();">Confirm</button>
证实
尝试了几种方法,但下面的方法对我有效。我没有使用watcher,而是在单击复选框周围的视图时调用函数 功能如下:
$scope.agreement.doIfChecked = doIfChecked;
function doIfChecked(){
$scope.agreement.isAnyUnchecked = !($scope.agreement.term1 && $scope.agreement.term2 && $scope.agreement.term3 && $scope.agreement.term4 && $scope.agreement.term5 && $scope.agreement.term6);
}
我对输入框的父div使用了ng click指令,如下所示:
<div class="checkbox" ng-click='agreement.doIfChecked();'>
<label>
<input type="checkbox" ng-model="agreement.term1"> Some term1 goes here.
</label>
</div>
<div class="checkbox" ng-click='agreement.doIfChecked();'>
<label>
<input type="checkbox" ng-model="agreement.term2"> Some term2 goes here.
</label>
</div>
这里有一些术语1。
这里有一些术语2。
按钮的标记如下所示,我使用的是ng disabled指令:
<div class="modal-footer">
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-disabled="agreement.isAnyUnchecked" ng-click=" $close();">Confirm</button>
证实
尝试了几种方法,但下面的方法对我有效。我没有使用watcher,而是在单击复选框周围的视图时调用函数 功能如下:
$scope.agreement.doIfChecked = doIfChecked;
function doIfChecked(){
$scope.agreement.isAnyUnchecked = !($scope.agreement.term1 && $scope.agreement.term2 && $scope.agreement.term3 && $scope.agreement.term4 && $scope.agreement.term5 && $scope.agreement.term6);
}
我对输入框的父div使用了ng click指令,如下所示:
<div class="checkbox" ng-click='agreement.doIfChecked();'>
<label>
<input type="checkbox" ng-model="agreement.term1"> Some term1 goes here.
</label>
</div>
<div class="checkbox" ng-click='agreement.doIfChecked();'>
<label>
<input type="checkbox" ng-model="agreement.term2"> Some term2 goes here.
</label>
</div>
这里有一些术语1。