我有兩個下拉列表(即一個下拉列表的最小值和另一個最大值)。如果我在第一個下拉列表中選擇一個值大於第二個下拉列表的值,那麼它必須交換。但我使用正常的交換方法,它只適用於輸入框。如何交換下拉值?
這裏是我的自定義下拉代碼:
HTML:
<div class="dropdown">
<ul>
<li class="prfdwn" data-value="value" ng-repeat="value in data" ng-
click="setMaxVal(val)" ng-blur="swap()">{{value.txt}}</li>
</ul>
</div>
<div class="dropdown">
<ul>
<li class="prfdwn" data-value="value" ng-repeat="value in data" ng-
click="setMinVal(val)" ng-blur="swap()">{{value.txt}}</li>
</ul>
</div>
JS:
$scope.data = [{
"id": 1,
"txt": 1,
},
{
"id": 2,
"txt": 2,
},
{
"id": 3,
"txt": 3,
},
{
"id": 4,
"txt": 4,
},
{
"id": 5,
"txt": 5,
}];
vm.swap = function() {
if (vm.minVal != "" && vm.minVal != undefined && vm.maxVal != "" &&
vm.maxVal != undefined) {
if (vm.minVal > vm.maxVal) {
var tempVal = vm.minVal;
vm.minVal = vm.maxVal ;
vm.maxVal = tempVal;
}
}
}
我該如何解決這個問題?
的'blur'事件不會發生的一個'li'元素,因爲在默認情況下它不會獲得焦點。你可能想要將'ng-click'和'ng-blur'移動到嵌套在'li'中的一個錨點元素。 –
@ Mike McCaughan請你清楚解釋一下。 – anub