如何在select2上实现类似于崇高的模糊搜索?
例如,输入"sta jav sub"将匹配"Stackoverflow javascript sublime like"
基本上我正在寻找的是能够隐藏选项的下拉列表中的选项.所以,从技术上讲,它们仍然是选项,但你只是无法点击它们,因为它们是隐藏的.
我查看了文档并找到了与禁用相关的内容,不幸的是我非常特别想要隐藏项目的能力.有没有人有关于如何做到这一点的建议?
是否有可能做一些事情,让select在原始<option>元素和该元素的select2副本之间做一些特定的映射,这也可以.例如,假设"如果原始<option>类具有此类或具有此类属性,则选择下拉列表中的结果项将以这种方式构造".
我正在寻找一种方法将click-event附加到select2-result-item.我已经完成了格式化结果和选择
function format(state) {
if (!state.id) return state.text; // optgroup
return state.text + " <i class='info'>link</i>";
}
Run Code Online (Sandbox Code Playgroud)
添加一个"信息"-icon我现在正试图将一个简单的点击事件附加到.info-element但是无法使其工作:
$('.info').on('click', function(event){
event.preventDefault();
alert("CLICK");
$('#log').text( "clicked" );
});
Run Code Online (Sandbox Code Playgroud)
有帮助吗?有类似问题的人吗?这有可能吗?
我准备了一个jsFiddle:http://jsfiddle.net/s2dqh/3/
在页面加载时,我正在尝试使用initSelection来选择ID 60 (输入字段的指定值).我似乎无法让它正常工作.
PHP脚本工作得很好并返回正确的值,但是如何让JS正确地进行回调呢?
JavaScript的:
$(document).ready(function() {
$('#editAlbumArtistId').select2({
placeholder: 'Search names',
ajax: {
url: "/jQueryScripts/jQuerySelectListArtists.php",
dataType: 'json',
quietMillis: 100,
data: function (term, page) {
return {
term: term, //search term
page_limit: 10 // page size
};
},
results: function (data, page) {
return {results: data.results};
}
},
initSelection: function(element, callback) {
var id = $(element).val();
if(id !== "") {
$.ajax("/jQueryScripts/jQuerySelectListArtists.php", {
data: {id: id},
dataType: "json"
}).done(function(data) {
callback(data);
});
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<p>
<input type='hidden' value="60" …Run Code Online (Sandbox Code Playgroud) 我知道如何从下拉列表中启用所选属性; 我可以使用这段代码:
$('select').select2();
Run Code Online (Sandbox Code Playgroud)
但我的问题是如何禁用它?谢谢

我有一个内部有几个选择的表单.我正在将select2 jquery插件应用于这样的选择:
$("select.company_select, select.positions_select").select2();
Run Code Online (Sandbox Code Playgroud)
select的工作正常,但我有这个代码自动提交我的表单(我在表单标签上有autosubmit类).
var currentData;
$('.autosubmit input, .autosubmit select, .autosubmit textarea').live('focus', function () {
currentData = $(this).val();
});
$('.autosubmit input, .autosubmit select, .autosubmit textarea').live('change', function () {
console.log('autosubmiting...');
var $this = $(this);
if (!currentData || currentData != $this.val()) {
$($this.get(0).form).ajaxSubmit(function (response, status, xhr, $form) {
currentData = "";
});
}
});
Run Code Online (Sandbox Code Playgroud)
问题是,使用select2,更改或焦点事件根本不会触发.如果我删除了select2,那么事件会被完全解雇.
我究竟做错了什么?
我将以下数据输入给select2
data = [{
"id": "all",
"text": "All",
"children": [{
"id": "item1",
"text": "item1"
}, {
"id": "item2",
"text": "item2"
}]
}];
Run Code Online (Sandbox Code Playgroud)
我正在将select2初始化为:
$(parent).select2({"data":data});
Run Code Online (Sandbox Code Playgroud)
现在选择值" item1 ",我做到了
$(parent).select2("val",["item1"]);
Run Code Online (Sandbox Code Playgroud)
但是,不是值" item1 "值而是" 全部 "被选中.如何选择value item1?
我正在使用带有spring mvc的select2.我从控制器获得了数据,我需要在选项方面显示.但是我希望它们被分组为optgroup,并且我希望将图像附加到其中,可以手动插入,如下所示: -
<optgroup label="group">
<option value="imageName">value 1</option>
<option value="imageName">value 1</option>
</optgroup>
Run Code Online (Sandbox Code Playgroud)
其中imageName是图像的名称.我想:1)json中的组选项.2)在json中提供此图像属性,以便select2可以形成数据.
这是代码:
$("#my-select").select2({
data : [ {
id : 0,
text : 'enhancement'
}, {
id : 1,
text : 'bug'
}, {
id : 2,
text : 'duplicate'
}, {
id : 3,
text : 'invalid'
}, {
id : 4,
text : 'wontfix'
} ]
});
Run Code Online (Sandbox Code Playgroud)
我从我的对象手动创建我的json.所以我可以在这里提供任何数据.有什么建议 ?
我在bootstrap模式中有一个select2框,我想更改select2框的值,但它不起作用.
我在以前的帖子和结果中尝试过每一个解决方案,但没有一个能让它发挥作用.
我使用select2 4.0.2,我测试过:
$('#select_id').val('val').trigger('change.select2');
$('#select_id').val('val').trigger('change');
$('#select_id').val('val').change()
Run Code Online (Sandbox Code Playgroud)
它工作一到两次然后停止工作(随机)
只有当我将select2更改回3.xx时,它才能正常工作
我使用webpack管理我的所有资产,当我使用此代码来要求select2(https://github.com/select2/select2)我得到了错误
$(...).select2不是函数.
require.ensure(['./vendors/select2'],function (require) {
require('./site');
});
Run Code Online (Sandbox Code Playgroud)
// site.js
(function ($) {
$(document).ready(function () {
$(".js-1example-basic-single").select2();
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
我认为模块导出有问题.我尝试了许多搜索,但没有希望.
有人请告诉我该怎么做,花了我大约10个小时.
谢谢!
jquery-select2 ×10
javascript ×4
jquery ×4
attributes ×1
events ×1
hide ×1
onchange ×1
select2 ×1
selected ×1
webpack ×1