我试图在单独的输入中显示select2下拉列表中的选定选项,然后从下拉列表中删除该选项。
到目前为止,我一直采用的方法是将下拉列表设置为普通选择,然后单击,将单击选项的值添加为“选定选项输入”的新选定选项。
当我想从输入中删除一个选中的选项时,这给了我一些问题,尽管我还没有找到一种有效的方法将删除的选项添加回原始的select,并且select的其他方面非常令人讨厌。
引用鲨鱼坦克企业家的话:“必须有更好的方法!”
下面是我正在尝试做的和我正在尝试做的现有代码的模型:
function initCodeSelectTwo() {
$('#codeDropdown').select2({
width: "100%",
ajax: {
url: 'urlOne',
dataType: 'json',
type: 'GET',
data: data
}
})
var codeSelector = $('#codeSelector');
$.ajax({
type: 'GET',
url: 'urlOne' // controller method gets options already assigned to item
}).then((data) => {
var option = new Option(data.Code, data.Code, true, true);
codeSelector.trigger({
type: 'select2: select',
params: {
data: data
},
multiple: true
});
})
}
function UpdateDropdown() {
// using click instead of change because the dropdown has been configured to not close on click
$('#codeDropdown').on('click', 'option', function(event) {
var option = $(this).val();
$('select box option[value="' + option + '"]').remove();
$("#codeInput").append('<option value="' + option + '">' + option + '</option>');
})
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我在select2文档中找不到任何关于这方面的信息,如果有任何帮助,我将不胜感激!
1条答案
按热度按时间wz1wpwve1#
您必须使用select2提供的事件对其进行编程。在你的情况下
select2:select
事件将捕获所选选项,然后可以对其进行编程以在另一个div中显示。下面是一个工作示例: