JQuery Select2 Item not found触发器
JQuery Select2 Item not found trigger
我想为我的 select2 个字段回调。我试图在我的 select2 组件上显示所有项目名称。但是,如果用户只是输入了项目的名称,而该项目不在 select 输入的任何选项下,那么我想弹出一个对话框,通知他们是否要将其添加为新项目。所以我想知道这个函数是否有任何类型的回调。这就是我的想法
$('select').select2({
onSelect: function(item) {
if (item == null || $(this).options == 0) {
// A dialog will prompt saying would you like to add this item?
}
}
});
我知道这个语法不正确,但你的想法对吗?我只想知道确定 select2 中的项目类型是否不存在或更好的回调是什么,但我希望在用户输入不在 [=16 上的内容时触发回调=]2个选项。
好的,给你。以下是在某种程度上起作用的 2 个场景:
场景一:
仅在单击 newtag
时启用确认提示
$('.select2').select2({
tags: true,
tokenSeparators: [",", " "],
createTag: function (tag) {
return {
id: tag.term,
text: tag.term,
isNew : true
};
}
}).on("select2:select", function(e) {
if(e.params.data.isNew){
var r = confirm("do you want to create a tag?");
if (r == true) {
$(this).find('[value="'+e.params.data.id+'"]').replaceWith('<option selected value="'+e.params.data.id+'">'+e.params.data.text+'</option>');
}
else
{
$('.select2-selection__choice:last').remove();
$('.select2-search__field').val(e.params.data.text).focus()
}
}
});
场景二:
click
和 space
的确认,但标签已添加到列表中:
$('.select2').select2({
tags: true,
tokenSeparators: [",", " "]
}).on("change", function(e) {
var isNew = $(this).find('[data-select2-tag="true"]');
if(isNew.length){
var r = confirm("do you want to create a tag?");
if (r == true) {
isNew.replaceWith('<option selected value="'+isNew.val()+'">'+isNew.val()+'</option>');
}
else
{
$('.select2-selection__choice:last').remove();
$('.select2-search__field').val(isNew.val()).focus()
}
}
});
You need to find some workaround for tag getting added in false case.
我想为我的 select2 个字段回调。我试图在我的 select2 组件上显示所有项目名称。但是,如果用户只是输入了项目的名称,而该项目不在 select 输入的任何选项下,那么我想弹出一个对话框,通知他们是否要将其添加为新项目。所以我想知道这个函数是否有任何类型的回调。这就是我的想法
$('select').select2({
onSelect: function(item) {
if (item == null || $(this).options == 0) {
// A dialog will prompt saying would you like to add this item?
}
}
});
我知道这个语法不正确,但你的想法对吗?我只想知道确定 select2 中的项目类型是否不存在或更好的回调是什么,但我希望在用户输入不在 [=16 上的内容时触发回调=]2个选项。
好的,给你。以下是在某种程度上起作用的 2 个场景:
场景一:
仅在单击 newtag
时启用确认提示$('.select2').select2({
tags: true,
tokenSeparators: [",", " "],
createTag: function (tag) {
return {
id: tag.term,
text: tag.term,
isNew : true
};
}
}).on("select2:select", function(e) {
if(e.params.data.isNew){
var r = confirm("do you want to create a tag?");
if (r == true) {
$(this).find('[value="'+e.params.data.id+'"]').replaceWith('<option selected value="'+e.params.data.id+'">'+e.params.data.text+'</option>');
}
else
{
$('.select2-selection__choice:last').remove();
$('.select2-search__field').val(e.params.data.text).focus()
}
}
});
场景二:
click
和 space
的确认,但标签已添加到列表中:
$('.select2').select2({
tags: true,
tokenSeparators: [",", " "]
}).on("change", function(e) {
var isNew = $(this).find('[data-select2-tag="true"]');
if(isNew.length){
var r = confirm("do you want to create a tag?");
if (r == true) {
isNew.replaceWith('<option selected value="'+isNew.val()+'">'+isNew.val()+'</option>');
}
else
{
$('.select2-selection__choice:last').remove();
$('.select2-search__field').val(isNew.val()).focus()
}
}
});
You need to find some workaround for tag getting added in false case.