我有一个使用selected-jquery插件的多选ListBox。我需要设置所选列表项的属性属性。
$(".chosen-select").chosen().change(function (evt) {
var label = $(this.options[this.selectedIndex]).closest('optgroup').prop('label');
alert(label);
if (label == "Global Groups") {
$(this.options[this.selectedIndex]).attr("grouping", "GlobalGroups");
}
else if (label == "Personal Groups") {
$(this.options[this.selectedIndex]).attr("grouping", "PersonalGroups");
}
else {
$(this.options[this.selectedIndex]).attr("grouping", "Individuals");
}
});
label
将在第一次返回正确的值,但不会为后续选择返回
我相信我只需要获取当前选定的项目来设置属性。然后在代码隐藏中,我将使用它来设置不同列表中的值。
如何设置当前所选项目以设置属性值?
感谢。
更新
<asp:ListBox ID="lstBoxTo" runat="server" SelectionMode="Multiple"
data-placeholder="Choose recipient(s)…" multiple="true" class="chosen-select">
</asp:ListBox>
更新 这是整个document.ready功能:
$(document).ready(function () {
//Create groups for recipient dropdown list
$(".chosen-select option[grouping='GlobalGroups']").wrapAll("<optgroup label='Global Groups'>");
$(".chosen-select option[grouping='PersonalGroups']").wrapAll("<optgroup label='Personal Groups'>");
$(".chosen-select option[grouping='Individuals']").wrapAll("<optgroup label='Individuals'>");
//Configure the ListBox using the 'chosen' jquery plugin
$(".chosen-select").chosen({
search_contains: true,
no_results_text: "Sorry, no match!",
allow_single_deselect: true
});
$('.chosen-container').css('width', '600px');
$(".chosen-select").chosen().change(function (evt) {
var label = $(this.options[this.selectedIndex]).closest('optgroup').prop('label');
alert(label);
if (label == "Global Groups") {
$(this.options[this.selectedIndex]).attr("grouping", "GlobalGroups");
}
else if (label == "Personal Groups") {
$(this.options[this.selectedIndex]).attr("grouping", "PersonalGroups");
}
else {
$(this.options[this.selectedIndex]).attr("grouping", "Individuals");
}
});
});
enter code here
答案 0 :(得分:0)
它应该工作(未经测试)
$(".chosen-select").chosen().change(function (evt) {
$(".chosen-select").find("option:selected").each(function(){
var label = $(this).closest('optgroup').prop('label');
alert(label);
if (label == "Global Groups") {
$(this).attr("grouping", "GlobalGroups");
}
else if (label == "Personal Groups") {
$(this).attr("grouping", "PersonalGroups");
}
else {
$(this).attr("grouping", "Individuals");
}
});
});