Javascript 禁用已由另一个选择项选择的选项(动态添加选择框)

Javascript 禁用已由另一个选择项选择的选项(动态添加选择框),javascript,php,jquery,html,twitter-bootstrap,Javascript,Php,Jquery,Html,Twitter Bootstrap,我在禁用已在另一个选择中选择的选项时遇到问题。选择框可以动态添加,无限制。我试过下面的脚本,但效果不好 我有一个这样的表单和脚本 var计数器项=2; var usedOptions=[]; 函数updateCounterItem(isRemove) { 如果(isRemove) { 计数器项=计数器项-1; }否则 { 计数器项=计数器项+1; } 如果(计数器项>1) { $(“按钮#移除”).prop(“禁用”,false); }否则 { $(“按钮#移除”).prop(“禁用”,tru

我在禁用已在另一个选择中选择的选项时遇到问题。选择框可以动态添加,无限制。我试过下面的脚本,但效果不好

我有一个这样的表单和脚本

var计数器项=2;
var usedOptions=[];
函数updateCounterItem(isRemove)
{
如果(isRemove)
{
计数器项=计数器项-1;
}否则
{
计数器项=计数器项+1;
}
如果(计数器项>1)
{
$(“按钮#移除”).prop(“禁用”,false);
}否则
{
$(“按钮#移除”).prop(“禁用”,true);
}
}
$(文档).ready(函数()
{
updateCounterItem(真);
var计数器=1;
$('button#add')。在('click',函数(e)上
{
e、 预防默认值();
$('div.featured-item').last().clone().appendTo('div#featured items');
计数器=计数器+1;
$('.featured item label').last().replaceWith('featured#'+counter+'');
$('.featured item select').last().attr('id','featured'+计数器);
updateCounterItem(false);
$('.featured item select').find('option').prop('disabled',false);
用于(输入使用选项)
{
值=使用选项[键];
$('.featured item select').find('option[value=“'+value+'”)).prop('disabled',true);
}
控制台日志(使用选项);
});
$('button#remove')。在('click',函数(e)上
{
e、 预防默认值();
控制台日志(使用选项);
$('div.featured-item').last().remove();
计数器=计数器-1;
updateCounterItem(真);
});
$(文档)。在('单击','选择',函数()上)
{
$(this.find('option[value=“”+$(this.val()+“])).prop('disabled',false);
});
$(文档).on('change','select',function()
{
var thisVal=$(this.val();
usedOptions=[];
$('option').prop('disabled',false);
$('select')。每个(函数()
{
var值=$(this.val();
usedOptions[$(this).attr('id')]=值;
});
var值=“”;
用于(输入使用选项)
{
值=使用选项[键];
$('option[value=“”+value+'“]')。prop('disabled',true);
$('#'+key+'选项[value='+value+']')。prop('disabled',false);
}
$(this.find('option[value=“”+thisVal+'“]).prop('disabled',false);
控制台日志(使用选项);
});
});

添加项
删除最后一项

特色#1 选择一个 安迪 老板 辛蒂 德雷克
您的代码逻辑有点歪,这应该适合您

var-new\u-id;
所选var_val_arrray=[];
//添加
$(文档)。在('单击',“#添加”,函数()上{
var el=$(“.featured item”).last()
var clone_holder=el.clone(真);
var当前项目数量=$(“.featured item”).length
新建项目标识=当前项目数量+1;
var select_els=$(“.select_select”)
选择每个(函数(){
var curr\u select\u el=$(此项);
var curr_select_el_val=curr_select_el.val();
所选值(当前选择值)
})
$(“#特色项目”)。附加(克隆持有人);
var new_last_featured=$(“.featured item”).last()
新的上次特色。子项('label')。文本('featured')+新的id);
新的上一个特色。子项('select').attr('id','featured'+新的\u id)
var selected_val_arrray_length=selected_val_arrray.length
对于(变量i=0;i

添加项
删除最后一项

特色#1 选择一个 安迪 老板 辛蒂 德雷克
请尝试使用fiddledone@TechBreakI,我可以用您的代码双重选择相同的选项。截图:@brobro note将修复它,如果我选择Andy,然后更改为Boss,在另一个选择中,Andy被禁用too@brobrobrobrobro请现在检查一下,我想它已经够近了,伙计。但是如果我在特色3中选择Cindy,然后在特色4中选择Drek,然后删除特色4,更改为特色3中的Drek,添加特色4,则会变成这样-->