[英]Dynamically add dropdown menus and exclude selected options
As I mentioned in the title, I'm trying to build dynamic dropdown menus. 如标题中所述,我正在尝试构建动态下拉菜单。 Once user chooses from list option, the same option is excluded (disabled) from other dropdowns.
用户从列表选项中选择后,其他下拉菜单中将排除(禁用)相同的选项。
So far I have built Add/Remove functionality. 到目前为止,我已经建立了添加/删除功能。 But I have no clue where to start with this problem with disabling selected options.
但是我不知道从哪里开始禁用这个选择的选项。
Here's jsfiddle link 这是jsfiddle链接
$('.multi-field-wrapper').each(function() {
var $wrapper = $('.multi-fields', this);
$(".add-field", $(this)).click(function(e) {
$('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus();
});
$('.multi-field .remove-field', $wrapper).click(function() {
if ($('.multi-field', $wrapper).length > 1)
$(this).parent('.multi-field').remove();
});
});
var defaultTime = "<option selected disabled>Choose time</option><option>Whole day</option>";
var i, b, a, clock = "";
var min = ["00", "15", "30", "45"];
for(a = 0; a <= 1; a++){
if(a == 0){
for (i = 0; i <= 11; i++) {
if(i <= 9) {
for (b = 0; b < min.length; b++) {
clock += "<option>" + "0" + i + ":" + min[b] + " AM" + "</option>";
}
}else{
for (b = 0; b < min.length; b++) {
clock += "<option>" + i + ":" + min[b] + " AM" + "</option>";
}
}
}
}else{
for (i = 0; i <= 11; i++) {
if(i <= 9) {
for (b = 0; b < min.length; b++) {
clock += "<option>" + "0" + i + ":" + min[b] + " PM" + "</option>";
}
}else{
for (b = 0; b < min.length; b++) {
clock += "<option>" + i + ":" + min[b] + " PM" + "</option>";
}
}
}
}
}
document.getElementById("clock").innerHTML = defaultTime + clock;
Any idea where should I start? 知道我应该从哪里开始吗? Any help would be helpful.
任何帮助都会有所帮助。
Thank You! 谢谢!
You have to make object of selected options as: 您必须将选定选项的对象设置为:
var foo = [];
$('.times :selected').each(function(i, selected){
foo[i] = $(selected).text();
});
After this just set option disable with values which are in foo
object 之后,只需设置选项,禁用
foo
对象中的值
$.each(foo, function(entry){
console.log(foo[entry]);
$(".times option:contains('"+foo[entry]+"')").attr("disabled","disabled");
});
Fiddle Link: https://jsfiddle.net/k4do7Lg2/1/ 小提琴链接: https : //jsfiddle.net/k4do7Lg2/1/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.