我有一个数据表,它是样本的一部分。我想将每一栏分配给另一个人,所以'凯文'将采取第一列,'布莱恩'将采取第二列,'Cath'列第三,依此类推。一旦使用了他们的名字,我希望将其从所有其他下拉列表中删除,如果选择了其他人,我希望他们的名字重新出现,以便在另一个下拉列表中进行选择。
可以有无限数量的列,但从不超过可用的人数,所以我不必担心名称的下拉列表。
如果可能的话,我希望使用jQuery动态执行此操作。有没有人有任何我可以修改的示例代码?
答案 0 :(得分:3)
批次更简单,只是禁用在别处选择的选项,使问题不是添加/删除选项,而只是禁用已经选择的选项。
如果这是可以接受的,代码归结为:
$('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个单元格中动态创建了一个下拉列表,当您在一个单元格中选择一个名称时,此名称将不再可在任何其他名称中选择,除非它首先未被选中。