javascript - Select2 - 输入时启动 ajax 搜索

标签 javascript jquery ajax jquery-select2

我有一个 Select2 输入,用于搜索(远程数据)。 目前,它的工作原理如下:

当用户再输入 1 个字符时,我们会自动触发搜索

现在,有趣的部分:

我需要添加以下行为:

当用户专注于此输入并单击 Enter 按钮时,我需要使用一个字符“*”触发搜索,但实际上无需在输入中写入该字符。

它应该只发送带有字符 * 的搜索请求,但输入应保留为空。

在不弄乱 Select2 代码的情况下这是否可能?

我的代码:

$("#account").select2({
    language: "en",
    ajax: {
        url: window.urls.ajax_account_search,
        dataType: 'json',
        delay: 500,
        data: function(params){
            console.log(params);
            return {
                query: params.term,
                page: params.page
            }
        },
        processResults: function(data, params){
            return {
                results: data.items
            }
        },
        cache: true
    },
    escapeMarkup: function(m) { return m; },
    templateResult: formatSearchResult,
    templateSelection: formatSearchSelection,
    minimumInputLength: 1
});

最佳答案

您可以在不存在搜索词时发送 *,而不是在输入时触发搜索(发送 *)。这也意味着放弃 minimumInputLength 要求,但这似乎与您正在寻找的内容一致。

$("#account").select2({
    language: "en",
    ajax: {
        url: window.urls.ajax_account_search,
        dataType: 'json',
        delay: 500,
        data: function(params){
            return {
                query: params.term || '*', // send * if there is no term
                page: params.page
            }
        },
        processResults: function(data, params){
            return {
                results: data.items
            }
        },
        cache: true
    },
    escapeMarkup: function(m) { return m; },
    templateResult: formatSearchResult,
    templateSelection: formatSearchSelection
});

关于javascript - Select2 - 输入时启动 ajax 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054737/

相关文章:

javascript - 将 onclick 控件发送到 javascript 函数

javascript - 传递值以仅打印、pdf 预览或在 excel 中打开

javascript - 如何执行多个ajax调用并获取结果?

javascript - 检查菜单中的链接

asp.net-mvc - 如何获取Controller中ActionResult返回的html

javascript - 自定义 jQuery 请求对象——我应该将我的实现移到我的标记中吗?

javascript - 使用 Javascript 和 Jquery 进行简单的产品过滤

javascript - ajax 'delete' Rails 按钮

javascript - AJAX 在第一个表单之后不处理表单

javascript - 书中示例错误 - "Unexpected token {"