Javascript 如何在取消选中AngularJS中的复选框时刷新下拉列表
伙计们,我在选择下拉列表时遇到了问题。当我取消选中复选框时,我想刷新angularJS中数组的下拉列表。基本上,我正在尝试开发一个表单,在该表单中,我将在下拉列表中选择一家价值控股公司,我的所有下拉列表将被禁用,我的复选框将被选中。当我释放下拉列表中的选定值时,该值保持不变。我想在取消选中复选框时刷新下拉列表 这是代码Javascript 如何在取消选中AngularJS中的复选框时刷新下拉列表,javascript,html,angularjs,checkbox,Javascript,Html,Angularjs,Checkbox,伙计们,我在选择下拉列表时遇到了问题。当我取消选中复选框时,我想刷新angularJS中数组的下拉列表。基本上,我正在尝试开发一个表单,在该表单中,我将在下拉列表中选择一家价值控股公司,我的所有下拉列表将被禁用,我的复选框将被选中。当我释放下拉列表中的选定值时,该值保持不变。我想在取消选中复选框时刷新下拉列表 这是代码 <div class="col-md-6 col-sm-6"> <select id="dropdown1" ng-model=
<div class="col-md-6 col-sm-6">
<select id="dropdown1" ng-model="of" class="form-control col-md-7 col-xs-12" ng-click="dropdown()">
<option ng:repeat=" officet in officetypes" value="{{officet.headoffice}}">{{officet.headoffice}}</option>
</select>
</div>
<input id="Checkbox1" ng-model="checkboxvalue" type="checkbox" name="abc" value="bca" ng-click="check()" />Is Main Entity
$scope.officetypes = [
{
headoffice: 'Branches',
description: 'Branches'
},
{
headoffice: 'Holding Company',
description: 'Holding Company'
},
{
headoffice: 'Subsidiaries',
description:'Subsidiaries'
},
{
headoffice: 'Ware house',
description: 'Ware house'
}];
$scope.check = function () {
alert($scope.checkboxvalue + " Checked");
//document.getElementById('dropdown1').disabled = true;
if ($scope.temp === 0) {
document.getElementById('dropdown1').disabled = true;
document.getElementById('Dropdown2').disabled = true;
document.getElementById('Dropdown3').disabled = true;
$scope.temp = 1;
}
else if ($scope.temp === 1) {
document.getElementById('dropdown1').disabled = false;
document.getElementById('Dropdown2').disabled = false;
document.getElementById('Dropdown3').disabled = false;
document.getElementById('dropdown1').selectedIndex = 1;
$scope.temp = 0;
}
else if ($scope.temp === 2) {
document.getElementById('dropdown1').disabled = false;
document.getElementById('Dropdown2').disabled = false;
document.getElementById('Dropdown3').disabled = false;
$scope.temp = 0;
}
}
$scope.dropdown = function () {
if ($scope.of === 'Holding Company') {
$scope.checkboxvalue = true;
document.getElementById('dropdown1').disabled = true;
document.getElementById('Dropdown2').disabled = true;
document.getElementById('Dropdown3').disabled = true;
document.getElementById('Checkbox1').checked = true;
$scope.temp = 2;
alert($scope.temp);
temp = 0;
}
else if ($scope.of !== 'Holding Company') {
$scope.checkboxvalue = false;
document.getElementById('dropdown1').disabled = false;
document.getElementById('Dropdown2').disabled = false;
document.getElementById('Dropdown3').disabled = false;
$scope.temp = 0;
}
if ($scope.of === 'Subsidiaries') {
document.getElementById('Dropdown3').disabled = true;
}
if ($scope.of === 'Branches') {
document.getElementById('dropdown1').disabled = false;
document.getElementById('Dropdown2').disabled = false;
document.getElementById('Dropdown3').disabled = false;
}
}
{{总部}
是主要实体
$scope.officetypes=[
{
总部:“分行”,
描述:“分支机构”
},
{
总部:“控股公司”,
描述:“控股公司”
},
{
总部:“子公司”,
说明:'子公司'
},
{
总部:'仓库',
描述:“仓库”
}];
$scope.check=函数(){
警报($scope.checkboxvalue+“已检查”);
//document.getElementById('dropdown1').disabled=true;
如果($scope.temp==0){
document.getElementById('dropdown1').disabled=true;
document.getElementById('Dropdown2')。disabled=true;
document.getElementById('Dropdown3')。disabled=true;
$scope.temp=1;
}
else if($scope.temp==1){
document.getElementById('dropdown1')。disabled=false;
document.getElementById('Dropdown2')。disabled=false;
document.getElementById('Dropdown3')。disabled=false;
document.getElementById('dropdown1')。selectedIndex=1;
$scope.temp=0;
}
else if($scope.temp==2){
document.getElementById('dropdown1')。disabled=false;
document.getElementById('Dropdown2')。disabled=false;
document.getElementById('Dropdown3')。disabled=false;
$scope.temp=0;
}
}
$scope.dropdown=函数(){
如果($scope.of==‘控股公司’){
$scope.checkboxvalue=true;
document.getElementById('dropdown1').disabled=true;
document.getElementById('Dropdown2')。disabled=true;
document.getElementById('Dropdown3')。disabled=true;
document.getElementById('Checkbox1')。checked=true;
$scope.temp=2;
警报($scope.temp);
温度=0;
}
否则,如果($scope.of!==‘控股公司’){
$scope.checkboxvalue=false;
document.getElementById('dropdown1')。disabled=false;
document.getElementById('Dropdown2')。disabled=false;
document.getElementById('Dropdown3')。disabled=false;
$scope.temp=0;
}
如果($scope.of==‘子公司’){
document.getElementById('Dropdown3')。disabled=true;
}
如果($scope.of=='branchs'){
document.getElementById('dropdown1')。disabled=false;
document.getElementById('Dropdown2')。disabled=false;
document.getElementById('Dropdown3')。disabled=false;
}
}
您可以使用$watch
检查复选框型号值的更新
就像,在你的角度控制器中,你应该写
$scope.$watch('checkboxvalue', function(newVal, oldVal) {
if(newVal != oldVal){
// re-assign value for officetypes (ng-repeat)
}
});
我希望它能起作用。您可以检查这个答案,这可能会对您有所帮助
$scope.of = 0 ;
此模式值为零,用于重置下拉列表
你能用你的代码创建JSFIDLE吗?请你提供代码给我。我听不懂,而且我对AngularJS还是个新手