我使用角JS
基於第一下拉選擇填充3下拉列表,第二下拉將填補,並基於所述第二下拉第三滴下來將填補。
HTML
<div ng-app ng-controller="myCtrl">
<select ng-model="option1" ng-options="option for option in options1" ng-change="getOptions2()">
</select>
<select ng-model="option2" ng-options="option for option in options2" ng-change="getOptions3()">
</select>
<select ng-model="option3" ng-options="option for option in options3">
</select>
</div>
控制器
var option1Options = ["Men", "Women", "Kids"];
var option2Options = [["Top wear","Bottom wear","Blazers"],
["W-Top Wear","W-Bottom Wear","W-Blazers"],
["K-Top wear","K-Bottom wear","K-others"]];
var option3Options = [["M-Tshirts","M-Casula Shirts","option2 - 3-3"],
["M-Jeans","option2 - 3-2","option2 - 3-3"],
["M-Blazers","option2 - 3-2","option2 - 3-3"],
["w-Tshirts","w-Casula Shirts","w-option2 - 3-3"]];
function myCtrl($scope){
$scope.options1 = option1Options;
$scope.options2 = [];
$scope.options3 = [];
$scope.getOptions2 = function(){
var key = $scope.options1.indexOf($scope.option1);
var myNewOptions = option2Options[key];
$scope.options2 = myNewOptions;
};
$scope.getOptions3 = function(){
var key = $scope.options2.indexOf($scope.option2);
var myNewOptions = option3Options[key];
$scope.options3 = myNewOptions;
};
}
小提琴鏈接:http://jsfiddle.net/mayankBisht/Xku9z/513/
問題
- 當我試圖填補與女性的選擇第三個下拉,它仍然顯示男士的選擇。
請幫忙。
它不是完全清楚這些3個下拉菜單如何彼此相關;第一個下拉菜單中有3個選項,第三個下拉菜單中的3個選項對應於第二個下拉菜單中的3個數組,然後是第二個下拉菜單中的3個選項,以從第三個下拉菜單中的4個不同數組中選擇? – Claies
您應該考慮完全重新映射您的選項,並創建具有可選屬性的對象,而不是數組,除了數組順序之外,這些數組之間沒有直接關係。 – Claies
我認爲您需要根據第一個選項設置第三個選項。如果您想要顯示女士的option3Options的最後一個成員,請告訴我編寫此代碼。但請考慮以更清晰的方式重新創建您的陣列。 – Yamin