gpt4 book ai didi

javascript - select2 jquery 插件重置具有预选项目的选择元素

转载 作者:行者123 更新时间:2023-12-03 08:20:08 27 4
gpt4 key购买 nike

我正在使用Select2标签输入jQuery插件。

我通过两个 json 格式的变量调用选择项目和预选项目,并使用 initSelection 选项来设置预选项目。

一切都很完美,但是当我从选择框中选择一个新项目时,以前的项目将从其中删除。

如何解决这个问题?

var allTags = [{
"tag_id": 1,
"tag_title": "Laravel"
}, {
"tag_id": 3,
"tag_title": "jQuery"
}, {
"tag_id": 4,
"tag_title": "HTML"
}];

var postTags = ["tag_id": 3, "tag_title": "jQuery"
}, {
"tag_id": 4,
"tag_title": "HTML"
}
}];
var allTags = $.map(allTags, function (obj) {
obj.id = obj.id || obj.tag_id;
obj.text = obj.text || obj.tag_title;
return obj;
});

var postTag = $.map(postTags, function (obj) {
obj.id = obj.id || obj.tag_id;
obj.text = obj.text || obj.tag_title;
return obj;
});

$('[id^="meta_keywords"]').select2({
dir: "rtl",
tags: true,
initSelection: function (element, callback) {
callback(postTag);
},
data: allTags
});

这是一个 JsFiddle 示例:

See On JsFiddle

最佳答案

单击先前选择的项目时进行多选将取消选择它。 initSelection 代码不是必需的,您可以在数据部分中预先选择它们

http://jsfiddle.net/ncjo6bz1/

var allTags = [{
"tag_id": 1,
"tag_title": "Laravel",
}, {
"tag_id": 3,
"tag_title": "jQuery",
selected: true
}, {
"tag_id": 4,
"tag_title": "HTML",
selected: true
}];

var allTags = $.map(allTags, function (obj) {
obj.id = obj.id || obj.tag_id;
obj.text = obj.text || obj.tag_title;
obj.selected = obj.selected || false;

return obj;
});

$('[id^="meta_keywords"]').select2({
dir: "rtl",
tags: true,
data: allTags

});

我无法找到更好的方法,但如果您想从下拉列表中隐藏已选定的项目,某些 CSS 可以做到这一点

li.select2-results__option[aria-selected='true'] {
display: none;
}

http://jsfiddle.net/ncjo6bz1/2/

关于javascript - select2 jquery 插件重置具有预选项目的选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33782122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com