动态启用按钮

时间:2016-08-11 13:16:38

标签: javascript html angularjs button controller

我在页面加载时有一个空数组,因为此数组中没有存储值,我使用ng-disabled="array1.length==0"禁用了该按钮。在打开的页面中,我有四个下拉菜单。我想要实现的是当我选择四个下拉菜单中的一个选项时应该启用按钮。

但只是将ng-disabled添加到按钮中并不会动态计算数组的长度。

我已经宣布了 array1= [{name1:''}, {name2:''}, {name:''}]。我只是发现长度永远不会是0.我希望当值为'''并在用户选择一个值时启用。

页面中显示的字段是可配置的,因此我在页面中默认显示的所有四个字段都属于一个模型。 ng-model="model[value.Name]"这将给我四个下拉(我做一个重复)。因此,我无法将一个硬编码值添加到ng-disabled,因为它们是动态值。

有关如何完成此操作的任何建议?

3 个答案:

答案 0 :(得分:1)

你应该有ng-disabled="!value1 && !value2 && !value3 && !value4 其中value1,value2,value3,value4代表所述下拉列表的ng-model。如果某些下拉值具有选定值按钮,则应启用。

答案 1 :(得分:1)

请尝试使用ng-disabled ='ddl1 || ddl2 || dd3 || dd4'!!!

答案 2 :(得分:0)

找到我的答案。我希望您的数组格式将在json上更改为数组,如控制器中所示。

$scope.myarray = [{name:''},{name:'name2'},{name:'name3'}]; 

html

<body ng-app='myApp' ng-controller='myCtrl'>
 <button ng-disabled="!selectedName.name && !selectedName2.name" '>button</button>

<select ng-model="selectedName" ng-options="x.name for x in myarray"></select>
   <select ng-model="selectedName2" ng-options="x.name for x in myarray"></select>
</body>

控制器

var app = angular.module("myApp", []);

angular
.module('myApp')
.controller('myCtrl', ['$scope',
    function ($scope) {
$scope.myarray = [{name:''},{name:'name2'},{name:'name3'}];            
    }]);

请找到plunker Plnkr link