【发布时间】:2019-06-17 10:10:32
【问题描述】:
当用户选择它时,我需要禁用下拉列表中的每个选择选项。
现在下面的代码只禁用下拉菜单中值为“red”的值,因为我硬编码了 value="red,"。我如何让它抓住用户的选择并仅禁用该选择?
(更新的 sn-p)
$(".mutliSelect select").on("change", function() {
var displayTitle = $(this).val() + "";
if ($(this).is(":selected")) {
$(".hida").show();
} else {
$("option[value*='red']").prop('disabled',true);
var p_elem = $("<span />")
.attr("class", "categoryBubble")
.attr("title", displayTitle)
.text(displayTitle);
var other_span = $("<span />")
.on("click", foo)
.addClass("Xout")
.text("x");
$(p_elem).append(other_span);
$(".multiSel").append(p_elem);
$(".hida").hide();
}
});
【问题讨论】:
-
this在$(this).is(":selected")的上下文中是<select>,不是一个选项,所以这没有意义。 -
另外,
var title的初始设置完全被title = $(this).val() + "";覆盖,所以这是一个逻辑错误 -
感谢所有帮助...我能够创建一个多选/下拉菜单来禁用所选的每个选项。这是小提琴jsfiddle.net/chaser7016/sghv4fz7/12