2011-02-10 65 views
0

我有一個下拉選擇器,需要根據選擇加載表單的其他部分。沒有使用jQuery重複選擇器

我在下面重複這個選擇幾次,需要確保沒有選擇相同的選項。我想我需要運行所有mySelector的選定選項,如果選擇選項顯示一些錯誤消息。不知道如何。

這裏是我到目前爲止有:

$('.mySelector').change(function(){ 
    var selectForm = '#' + $(this).val(); 
    $('div').next('.fLoad').load('formParts.html ' + selectForm); 
}); 

<select class="mySelector"> 
    <option value="selectOne">Select one</option> 
    <option value="o1">Car details</option> 
    <option value="o2">Boat details</option> 
    <option value="o3">Train details</option> 
    <option value="o4">Bike details</option> 
    <option value="o5">Sub details</option> 
</select> 

<div class='fLoad'> </div> 
    <option value="selectOne">Select one</option> 
    <option value="o1">Car details</option> 
    <option value="o2">Boat details</option> 
    <option value="o3">Train details</option> 
    <option value="o4">Bike details</option> 
    <option value="o5">Sub details</option> 

<div class='fLoad'> </div> 

<select class="mySelector"> 
    <option value="selectOne">Select one</option> 
    <option value="o1">Car details</option> 
    <option value="o2">Boat details</option> 
    <option value="o3">Train details</option> 
    <option value="o4">Bike details</option> 
    <option value="o5">Sub details</option> 
</select> 

<div class='fLoad'> </div> 
+0

你的HTML看起來時髦:選項標籤不關閉... – 2011-02-10 13:30:24

+0

當前代碼只是一個選擇的作品,但不關閉選項。 HTML不需要關閉。但是,我可以關閉。感謝你提到這一點。 – santa 2011-02-10 13:31:59

回答

1

製作值的字典的bool,這樣你只需要遍歷所有的選項一次。

var alreadyUsed = {}; 

$("select").each(function(){ 
    var thisVal = $(this).val(); 
    if(alreadyUsed[thisVal]){ 
     // found a dupe 
    } 

    alreadyUsed[thisVal] = true; 
});