2014-03-12 39 views
1

我有4 <select>盒用相同的價值觀:確保所有值都在下拉菜單中使用

我想確保在下拉菜單中使用這些值中的每一個,而不重複。

我無法理解這一點。我嘗試循環選擇框並挑選出值,但我無法讓它工作。有沒有人有一個快速簡單的解決方案呢?

+1

歡迎光臨!您忘記發佈任何相關代碼... –

+0

是的,對不起 - 我無法提供任何「相關」代碼。 – janhartmann

回答

2

獲取唯一值列表,然後用原始數組檢查長度。

var arr = [1,2,3,4]; 

if ($.unique($('select').map(function(){ return $(this).val(); })).length === arr.length) { 
    // OK 
} 
+0

從來不知道jQuery中的獨特性! – janhartmann

+0

可以說我添加了另一個值「-1」(例如用於「選擇值」),這仍然可以使用嗎? – janhartmann

+0

在返回.val()之前檢查-1以得到它的工作。使用「返回」 - 這個可以嗎? ;-) – janhartmann

0

我解決了這個問題

HTML

<select id="sselect"></select> 

的JavaScript

var a = [1,2,2,3,4,5]; 
var duplicates = a; 
var result = []; 
$(function() { 
    for (var i = 0; i < a.length; i++) { 
     var item = a[i]; 
    for (var c = 0; c < duplicates.length; c++) { 
      if (jQuery.inArray(item, result) == -1) { 
     result.push(item); 
     } 
    } 
} 
}); 

for (var i = 0; i < result.length; i++) { 
$('#sselect').append($('<option>', { 
     value: result[i], 
     text : result[i] 
    })); 
} 

Live example of this code