通过搜索检测无结果返回 - Selectize.js

时间:2014-09-09 08:23:27

标签: javascript selectize.js

使用Selectize.js时,有没有办法检测空搜索结果?

如果用户输入内容并且他们没有从下拉列表中获取内容,是否有办法检测空搜索?

2 个答案:

答案 0 :(得分:4)

Selectize.js有一个名为onType的事件。当用户输入内容时,onType事件将触发。初始化Selectize.js时,您只需要注册此事件。然后,您必须计算过滤器返回的总结果。

以下是实施:

$('select[name=country_id]').selectize({
      // When user type something, onType event will fire.
      onType  : function(text) {
        if ( ! this.currentResults.items.length) {
          $('#country-not-found').removeClass('hide');
        } else {
          $('#country-not-found').addClass('hide');
        }
      }
    });

有关信息,请访问以下链接:

https://github.com/brianreavis/selectize.js/blob/master/docs/usage.md#callbacks

答案 1 :(得分:1)

根据documentation,selectize.js发生onChange事件。您应该可以挂钩并检查选择列表是否有任何选项。如果没有,您可以运行“其他”代码。

查看链接中的城市/州选择示例,了解有关如何使用onChange事件的详细信息。这是演示的源代码。

$select_state = $('#select-cities-state').selectize({
    onChange: function(value) {
        if (!value.length) return;
        select_city.disable();
        select_city.clearOptions();
        select_city.load(function(callback) {
            xhr && xhr.abort();
            xhr = $.ajax({
                url: 'http://www.corsproxy.com/api.sba.gov/geodata/primary_city_links_for_state_of/' + value + '.json',
                success: function(results) {
                    select_city.enable();
                    callback(results);
                },
                error: function() {
                    callback();
                }
            })
        });
    }
});