我有一個數據表,它是示例的一部分。我想將每列分配給不同的人,所以'凱文'將列第一列,'布萊恩'列第二列,'第三列'等等。一旦他們的名字被使用,我希望將其從所有其他下拉列表中移除,如果選擇了其他人,我希望他們的名字在另一個下拉列表中重新出現。在運行時使用一組值創建多個生成的下拉列表
可以有無限數量的列,但不會超過可用人數,所以我不必擔心名稱下拉不足。
如果可能的話,我想這樣做使用jQuery在飛行中。有人得到我可以修改以適合的任何示例代碼嗎?
我有一個數據表,它是示例的一部分。我想將每列分配給不同的人,所以'凱文'將列第一列,'布萊恩'列第二列,'第三列'等等。一旦他們的名字被使用,我希望將其從所有其他下拉列表中移除,如果選擇了其他人,我希望他們的名字在另一個下拉列表中重新出現。在運行時使用一組值創建多個生成的下拉列表
可以有無限數量的列,但不會超過可用人數,所以我不必擔心名稱下拉不足。
如果可能的話,我想這樣做使用jQuery在飛行中。有人得到我可以修改以適合的任何示例代碼嗎?
這是一個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個細胞創造了一個下拉列表中,當你選擇一個單元格中的名稱不能在其他任何單元格中選擇,除非首先取消選擇該名稱。
我有大約3倍的代碼量,它還沒有完成,所以是的,這種方法是一個很簡單! –
順便說一句 - 這個答案直接從我以前的答案撕裂類似的問題 - 請參閱[這裏](http://stackoverflow.com/questions/7309730/jquery-select-option-disabled-if-selected-in-多選盒/ 7310103#7310103) – Jamiec
我很困惑。你的意思是你從一個下拉菜單開始,該下拉菜單包含與列表一樣多的選項?然後,您從下拉列表中選擇一個選項(人員),並將該選項從下拉菜單中刪除? –
我將在表格中的每列的頂部添加一個下拉菜單。在每個這些將會有所有的名字。如果我爲第一列選擇「Cath」,那麼她的名字需要從其他所有下拉菜單中刪除。如果我在下拉菜單中取消選擇她,那麼她的名字需要重新添加到所有下拉菜單中以供選擇。 –
嗯,這是一個很好的! –