2013-04-05 21 views
3

選擇我有4個下拉列表與球隊的名單中下拉從數據庫中獲取列表中刪除一個下拉項。我已經把代碼放在下面的下拉列表中,我很抱歉它是用JADE的HTML模板引擎編寫的,但是這是我編寫代碼的方式。我已經把我現在的jQuery腳本放在下面了。如果我從團隊1走到團隊4並選擇一個團隊,那麼它可以工作,但是如果我改變了我對於其中一個下降的想法......那麼整個團隊清單打亂了,因爲它已經刪除某些項目...jQuery的 - 如果它是由用戶

如果我進入TEAM1一個團隊,應該從列表的其餘部分消失....但如果我改變團隊1,團隊應該出現在剩下的名單再次,但它目前沒有。

任何想法如何解決這一問題?

JADE下拉菜單:

div.row 
    label.control-label(for="team1") Team 1: 
    div.controls 
     select#team1(style='width: 160px;') 
      include teamsDropDown 
div.row 
    label.control-label(for="team2") Team 2: 
    div.controls 
     select#team2(style='width: 160px;') 
      include teamsDropDown 
div.row 
    label.control-label(for="team3") Team 3: 
     div.controls 
      select#team3(style='width: 160px;') 
       include teamsDropDown 
div.row 
     label.control-label(for="team4") Team 4: 
      div.controls 
       select#team4(style='width: 160px;') 
        include teamsDropDown 

teamsDropDown JADE:

-if(teamsList.length > 0){ 
    option 
    -each team in teamsList 
    option.teamDropDown(id="#{team.key}",value="#{team.key}") #{team.name} 
-}else{ 
    No teams till now.. 
-} 

jQuery腳本:

script(type='text/javascript') 
$('select').change(function() { 
$('select').not(this).children('option[value=' + $(this).val() + ']').remove(); 
}); 

JFiddle:

http://jsfiddle.net/m8QCZ/

+0

沒有想法嗎? – germainelol 2013-04-05 22:19:51

回答

5

也許這可以養活你的需求:

SEE DEMO

var $selects = $('select'); 
$('select').change(function() { 
    $('option:hidden', $selects).each(function() { 
     var self = this, 
      toShow = true; 
     $selects.not($(this).parent()).each(function() { 
      if (self.value == this.value) toShow = false; 
     }) 
     if (toShow) $(this).show(); 
    }); 
    if (this.value != 0) //to keep default option available 
     $selects.not(this).children('option[value=' + this.value + ']').hide(); 
}); 
+0

在每個'.change()'開始時,您需要使所有選項可見。請執行以下操作以查看原因:將第一個選擇更改爲值2,然後選擇第三個值,然後將第一個選擇更改爲值1.您將看到在第三個選擇中不能再選擇值2。其實,我解決了一個類似的問題不是很久以前... http://stackoverflow.com/questions/15686481/iterating-over-options-from-multiple-select-boxes-in-jquery – Dom 2013-04-05 22:33:31

+0

@Roasted你掛我的jfiddle? – germainelol 2013-04-05 22:33:31

+0

@germainelol對不起@Roasted這個答案的工作,但你可以選擇,爲什麼選擇後給我解釋一下更新的答案 – 2013-04-05 22:36:48

相關問題