Tag: jquery select2

选择2版本4.0允许用户输入自由文本

我使用的是最新版本的Select2: Select2 4.0 。 我想允许用户输入自由文本。 换句话说,如果用户在下拉列表中找不到选项(ajax返回的数据),我希望他们能够“选择”他们输入的任何文本。 这是我的标记: 这是我用来初始化Select2的JavaScript: $(“#businessName”).select2({ ajax: { url: “/register/namelookup”, dataType: ‘json’, delay: 250, type: ‘post’, data: function (params) { return { businessName: params.term, // search term page: params.page }; }, processResults: function (data, page) { return { results: data.items }; }, cache: false }, escapeMarkup: function (markup) { return markup; }, […]

Select2 – 按查询排序结果

我正在使用Select2版本4.0.0。 如果我的结果包含多个单词,并且用户输入其中一个单词,我想显示按输入单词在结果中的位置排序的结果。 例如,用户输入“apple”,我的结果是: “香蕉橙苹果” “香蕉苹果橙” “苹果香蕉橙” 然后“apple banana orange”应首先出现在select2结果列表中,因为这是“apple”最早出现在结果中的结果。 我不太关心过去的排序。 我可以覆盖或配置什么来获得这样的东西? 似乎matcher不处理排序,并且sorter器不包含查询数据。

清除select2而不触发更改事件

我有一个我正在使用的select2输入和’更改’我正在抓取值并执行操作。 我试图清除select2而不触发更改事件。 这可能吗? 要清除select2,我使用以下代码: $docInput.select2(‘data’, null); 这会根据需要清除输入,但也会触发一个通过我的其他代码运行的更改事件。 必须有办法使触发器静音。 有任何想法吗?

如何在没有ajax的select2 4.0中启用无限滚动

我正在使用带有自定义数据适配器的select2 。 提供给select2所有数据都是在网页中本地生成的(因此不需要使用ajax)。 由于query方法可以生成很多结果(约5k),打开选择框的速度相当慢。 作为补救措施,我想使用无限滚动。 自定义数据适配器的文档说, query方法应该与term一起接收page参数: @param params.page应加载的特定页面。 这通常在使用远程数据集时提供,远程数据集依靠分页来确定应显示哪些对象。 但事实并非如此:只有term存在。 我试图返回more: true或more: 1000 ,但这没有帮助。 我想这是因为,默认情况下, 如果启用了ajax,则启用无限滚动 。 我猜测启用无限滚动将涉及使用amd.require ,但我不确定该怎么做。 我试过这段代码: $.fn.select2.amd.require( [“select2/utils”, “select2/dropdown/infiniteScroll”], (Utils, InfiniteScroll) => input.data(“select2”).options.options.resultsAdapter = Utils.Decorate(input.data(“select2”).options.options.resultsAdapter, InfiniteScroll) ) 这是咖啡脚本,但我希望它对每个人都是可读的。 input是包含select框的DOM元素 – 我之前做过input.select2( //options ) 我的问题基本上是,如何在没有ajax情况下启用无限滚动?

带有ajax的jquery-select2 multi的JSON格式

我正在考虑从Chosen转到Select2,因为Select2具有ajax的本机方法。 Ajax很关键,因为通常你需要加载大量数据。 我用api.rottentomatoes.com/api/的JSON成功执行了这个例子 我做了一个JSON文件来测试ajax,但它没有用。 我不知道JSON应该如何。 似乎没有详细的文件: https://github.com/ivaynberg/select2/issues/920 我尝试了几种JSON格式,所以我尝试复制类似于api.rottentomatoes的JSON格式,但它不起作用。 我可能会遗漏一些愚蠢的东西。 function MultiAjaxAutoComplete(element, url) { $(element).select2({ placeholder: “Search for a movie”, minimumInputLength: 1, multiple: true, ajax: { url: url, dataType: ‘jsonp’, data: function(term, page) { return { q: term, page_limit: 10, apikey: “z4vbb4bjmgsb7dy33kvux3ea” //my own apikey }; }, results: function(data, page) { return { results: data.movies }; […]

防止select2向下翻转下拉列表

根据标题,是否有办法强制select2始终创建下拉列表而不是下拉? 当你在下拉列表上方滚动,添加一个新的CSS类“select2-drop-above”或两者兼而有之时,似乎还有一些javascript导致翻转。 编辑:我应该指定我通过select2-rails拉动库。 我希望有一种解决方法,不涉及在我自己拉动整个select2 lib并直接编辑select2.js文件。

以编程方式设置Select2 ajax的值

我有一个Select2自动完成输入(通过SonataAdmin构建),但在我的生活中无法弄清楚如何以编程方式将其设置为已知的键/值对。 这里有一个JS小提琴 ,大致显示了我的内容。 我想知道的是我可以将哪些function附加到按钮上 Select2字段向用户显示文本“NEW VALUE”,和 将表单发送到服务器时,Select2字段将提交值“1” 我已经尝试了jQuery和Select2 data和val方法的各种组合,在页面上针对各种输入调用,但似乎没有任何工作……当然有一些方法可以做到这一点? – 编辑 – 下面接受的答案非常有用,有助于阐明初始化选择的正确方法,并解释initSelection的用途。 话虽如此,我最大的错误似乎是我试图触发变化的方式。 我用的是: $(element).select2(‘data’, newObject).trigger(‘change’); 但是这会导致select2的change事件中出现一个空的add对象。 相反,如果您使用: $(element).select2(‘data’, newObject, true); 然后代码按原样运行, newObject在select2的change事件中可用,并且值正确设置。 我希望这些额外的信息可以帮助别人!

Select2和initSelection回调

在页面加载时,我正在尝试使用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 […]

将Select2集成到Angular2应用程序中

我正在尝试将Select2集成到我正在构建的Angular2应用程序中。 我设法让select2运行,我的多个选择按预期转换。 我现在的问题是如何获取所选值以及我应该使用哪个事件进行绑定。 我尝试在select元素上绑定(change)事件但没有发生任何事情。 也许我应该使用插件select2-container元素创建的其他事件? 此答案后集成了select2插件。 有人试过类似的混合? 是否有可能让它工作或我必须转而使用ng2-select指令? 更新 奖金问题:) – 即使我放弃了select2并使用标准的多重选择,我该如何获得它的价值? 我尝试将它绑定到具有[(ngModel)]=”_selectedValues”的属性,但是当我选择任何选项时它仍然为空。 多重复选框是多项选择的唯一方式吗? 更新2 对于奖金问题 – 我发现的解决方法是使用单向事件绑定,如(change)=”selectedValues=$event.target.selectedOptions” 。 然后我为selectedValues属性添加了一个setter ,如下所示: public set selectedValues(value: Array) { this._selectedValues.length = 0; for(let v of value){ this._selectedValues.push(v.value); } };

从MVC 4中的数据库填充Select2下拉框

我需要帮助编写jquery / ajax来填充Select2下拉框。 对于那些不知道Select2是什么的人来说,它是一个javascript扩展,为html选择列表下拉框提供Twitter Bootstrap外观和搜索/提前输入function。 有关更多信息,请查看此处的示例: Select2 Github页面 更新 – 解决了! 所以我最终将这一切放在一起,我的问题的解决方案是我缺少格式化结果和列表选择的函数。 下面的代码生成一个function齐全的Select2保管箱,完美地预先输入。 控制器上的Json方法: public JsonResult FetchItems(string query) { DatabaseContext dbContext = new DatabaseContext(); //init dbContext List itemsList = dbContext.Items.ToList(); //fetch list of items from db table List resultsList = new List; //create empty results list foreach(var item in itemsList) { //if any item contains […]