2

我正在使用启用搜索的引导多选。一切正常。问题是当用户搜索下拉选项中不存在的字符串时,它没有向用户显示任何消息,例如“未找到结果”。显示空白下拉菜单。

如果搜索字符串与任何下拉值都不匹配,我如何显示“未找到结果消息”。

这是代码:

$('#mydropdown').multiselect({
      buttonWidth: '80%',
      enableCaseInsensitiveFiltering: true,
      onChange: function(option, checked, select){
          setValue();
      }
});

谢谢, 图沙尔

4

2 回答 2

0

对于当前版本的 bootstrap-multiselect,我对 bootstrap-multiselect.js 文件进行了以下更改。虽然我讨厌编辑源文件,但没有结果消息是客户的要求。

将此代码放在“buildFilter:function()”上方:

_$customNoResultsLi: null,
_toggleCustomNoResults: function () {
    if (this._$customNoResultsLi === null) {
        this._$customNoResultsLi = $('<li class="customNoResults">No Search Results</li>')
            .appendTo(this.$ul);
    }
    if (this.$ul.find('li:not(.filter-hidden) input[type="checkbox"]').length == 0) {
        this._$customNoResultsLi.show();
    } else {
        this._$customNoResultsLi.hide();
    }
},

然后在 buildFilter() 中,我在“this.updateSelectAll();”之前添加以下内容:

//CUSTOM CODE
this._toggleCustomNoResults();

本质上,当所有复选框都被隐藏时,此代码将添加“无结果”消息。

于 2015-10-05T19:29:41.193 回答
0

此外部代码提供带有搜索关键字的“无结果匹配”

$(document).on("keyup", ".multiselect-search", function (e) {

    var thisObj = this;

    setTimeout(function () {

        if ($(thisObj).parent().parent().parent().find("li.multi-no-results").length == 0)
            $(thisObj).parent().parent().parent().append('<li style="display:none" class="multi-no-results cropin-multi-select-noresult-lable"><a  href="#">No results matched ""</a></li>');

        var totalOptions = $(thisObj).parent().parent().parent().parent().siblings().last().find("option").length;
        var totalFilteredOptins = totalOptions - $(thisObj).parent().parent().parent().find("li.filter-hidden").length;

        if (totalFilteredOptins <= 0) {
            $(thisObj).parent().parent().parent().find("li.multi-no-results").find("a").text('No results matched "' + $(thisObj).val() + '"');
            $(thisObj).parent().parent().parent().find("li.multi-no-results").show();
        }
        else {
            $(thisObj).parent().parent().parent().find("li.multi-no-results").hide();
        }

    }, 300);

});
于 2016-05-22T08:09:16.187 回答