【问题标题】:ajaxChosen plugin will not workajaxChosen 插件不起作用
【发布时间】:2014-03-07 18:41:50
【问题描述】:

我整个下午都在修补 ajaxChosen,因为我喜欢 Chosen,但是我的期权价值集变得太大了。我也尝试过 select2,但它太慢了。

http://harvesthq.github.io/chosen/ https://github.com/meltingice/ajax-chosen

所以,我得到了最新版本的 selected (1.1.0) 和最新版本的 ajaxChosen。我初始化ajaxChosen如下:

$("#add_people").ajaxChosen({
    type: 'GET',
    minTermLength: 3,
    afterTypeDelay: 300,
    dataType: 'json',
    url: 'http://cmcrm.chocolata.be/content/people.php?action=list_options'
  }, function (data) {
    var results = [];
    $.each(data, function (i, val) {
    results.push({ value: val.value, text: val.text });
  });
  return results;
});

我的脚本可以访问此 URL,并且没有进行 XSS 预防,因为我的脚本与远程 url 在同一个域中。

我的JSON格式如下:

[{"value":3,"text":"Valerietje Mortelmans (Actief)"},{"value":9,"text":"Olivier Hopchet (Actief)"},{"value":13,"text":"Wieland Rits (Actief)"},{"value":14,"text":"Melissa Seiffert van der Merwede (Actief)"},{"value":15,"text":"Guillaume de Valensart (Actief)"},{"value":18,"text":"Xavier Cloet (Actief)"},{"value":19,"text":"Brent Lammens (Actief)"},{"value":21,"text":"Coralie Libert (Actief)"},{"value":22,"text":"Laetitia Theus (Actief)"},{"value":23,"text":"Evelien Mollet (Actief)"},{"value":24,"text":"Feya Smets (Actief)"},{"value":25,"text":"Michelle Warneke (Actief)"},{"value":26,"text":"Carolyn Spaenjaers (Actief)"},{"value":27,"text":"Evelien Raes (Actief)"},{"value":28,"text":"Ange Luyten (Actief)"}]

我看到 selected 已经初始化,但是当我开始输入时,我立即得到“没有关键字的搜索结果”。我的控制台中没有错误。

那么问题是什么?插件只是不起作用吗?还是我做错了什么?


我在这里创建了一个 jsfiddle http://jsfiddle.net/4796y/

谁能提供帮助,以免我在这方面浪费更多时间? :-) 很想用这个。谢谢!

【问题讨论】:

    标签: jquery jquery-plugins jquery-chosen


    【解决方案1】:

    经过进一步研究,我发现这个插件不再受到积极支持。

    似乎 Michael Perrin 将它分叉以与所选的 1.X 版本兼容: https://github.com/michaelperrin/ajax-chosen/

    Michael 的 fork 可以工作,但仍然有一点问题。 在 Michael 的示例中,我的主要问题是在找到匹配结果后某些键入的字母被丢弃。出乎意料的行为!

    也许最好再给Select2 一次机会,因为它的用户声称在处理大型列表时他们可以规避插件的滞后性。

    此插件受到积极支持并被广泛使用。也许最好把我们的蛋放在那个篮子里;-)

    Select2速度慢的问题可以找here

    【讨论】:

    • 我刚刚测试了 Michael Perrin 的版本,它仍然可以正常工作。
    • 我猜关键是原始版本仍在寻找像.chzn-container.chzn-results这样的Chosen类,但Chosen实际上使用的是.chosen-container等等。 Michael 的版本更新了这些引用的类。
    • 对于那些寻找自动完成功能的人来说,令牌输入非常酷:loopj.com/jquery-tokeninput
    【解决方案2】:

    我遇到了同样的问题,没有启动 Ajax 请求。经过一番调查,我发现如果你的选择是空的,选择禁用搜索功能。

    将此添加到所选选项:disable_search_threshold: -1

    您的代码应如下所示:

    $("selector").ajaxChosen({
        // AJAX & AjaxChosen OPTIONS
        type: 'GET',
        url: "/My/url.php",
        dataType: 'json'
    },
    function (data) {
        // CALLBACK
        var results = [];
        // [...]
        return results;
    }, 
    {
        // CHOSEN OPTIONS
        disable_search_threshold: -1
    });
    

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2014-08-29
      • 2018-09-03
      • 2018-11-20
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多