2011-09-21 36 views
0

我有一個數據表,它是示例的一部分。我想將每列分配給不同的人,所以'凱文'將列第一列,'布萊恩'列第二列,'第三列'等等。一旦他們的名字被使用,我希望將其從所有其他下拉列表中移除,如果選擇了其他人,我希望他們的名字在另一個下拉列表中重新出現。在運行時使用一組值創建多個生成的下拉列表

可以有無限數量的列,但不會超過可用人數,所以我不必擔心名稱下拉不足。

如果可能的話,我想這樣做使用jQuery在飛行中。有人得到我可以修改以適合的任何示例代碼嗎?

+0

我很困惑。你的意思是你從一個下拉菜單開始,該下拉菜單包含與列表一樣多的選項?然後,您從下拉列表中選擇一個選項(人員),並將該選項從下拉菜單中刪除? –

+0

我將在表格中的每列的頂部添加一個下拉菜單。在每個這些將會有所有的名字。如果我爲第一列選擇「Cath」,那麼她的名字需要從其他所有下拉菜單中刪除。如果我在下拉菜單中取消選擇她,那麼她的名字需要重新添加到所有下拉菜單中以供選擇。 –

+0

嗯,這是一個很好的! –

回答

3

這是一個lot更簡單,只是禁用其他地方已選擇的選項,使問題之一不添加/刪除選項,但只是禁用已被選中的選項。

如果這是可以接受的,代碼歸結爲:

$('select').live('change',function(){ 
    //enable all options 
    $('select option').attr('disabled',false); 

    // disable in other select boxes items which has been selected in the currently changed one  
    $('select').each(function(){ 
     var $this = $(this); 
     $('select').not($this).find('option').each(function(){ 
      if($(this).attr('value') == $this.val()) 
       $(this).attr('disabled',true); 
     }); 
    }); 

}); 

在這裏看到活生生的例子:http://jsfiddle.net/S7PfY/

在該示例中,我動態地在3個細胞創造了一個下拉列表中,當你選擇一個單元格中的名稱不能在其他任何單元格中選擇,除非首先取消選擇該名稱。

+0

我有大約3倍的代碼量,它還沒有完成,所以是的,這種方法是一個很簡單! –

+0

順便說一句 - 這個答案直接從我以前的答案撕裂類似的問題 - 請參閱[這裏](http://stackoverflow.com/questions/7309730/jquery-select-option-disabled-if-selected-in-多選盒/ 7310103#7310103) – Jamiec

相關問題