我有一个数据表,它是示例的一部分。我想将每列分配给不同的人,所以'凯文'将列第一列,'布莱恩'列第二列,'第三列'等等。一旦他们的名字被使用,我希望将其从所有其他下拉列表中移除,如果选择了其他人,我希望他们的名字在另一个下拉列表中重新出现。在运行时使用一组值创建多个生成的下拉列表
可以有无限数量的列,但不会超过可用人数,所以我不必担心名称下拉不足。
如果可能的话,我想这样做使用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”,那么她的名字需要从其他所有下拉菜单中删除。如果我在下拉菜单中取消选择她,那么她的名字需要重新添加到所有下拉菜单中以供选择。 –
嗯,这是一个很好的! –