61

我尝试在启动 Select2 时使用“language.noMatches”选项并抛出未定义的函数?我该如何修改那段文字?我想包含一个 html 按钮,如果找不到,它将添加来自用户的输入。我尝试将其作为函数以及纯文本来执行。我还删除了所有 html 以查看是否这样做。

$('#search-select').select2({

   ...

   "language": {
       "noMatches": function(){
           return "No Results Found <a href='#' class='btn btn-danger'>Use it anyway</a>";
       }
   }
});

这以前是 Select2 v3.5 中的“formatNoMatches”

4

4 回答 4

123

noMatches选项不会出现在源代码中的任何位置。

实际选项名为noResults。您的示例的工作版本是:

$('#search-select').select2({

   ...

   "language": {
       "noResults": function(){
           return "No Results Found <a href='#' class='btn btn-danger'>Use it anyway</a>";
       }
   },
    escapeMarkup: function (markup) {
        return markup;
    }
});

您还需要覆盖 escapeMarkup,以便按钮正确显示,根据这个问题

于 2015-07-18T02:54:07.293 回答
44

可能,您必须为要使用的语言添加脚本。像这样的东西:

<script src="select2/js/i18n/pt-BR.js" type="text/javascript"></script>

然后你可以设置默认语言:

$(".select2").select2({
  "language": "pt-BR"
});
于 2016-01-27T17:30:20.817 回答
14

选择 2.5 的选项似乎formatNoMatches

$('#search-select').select2({
  formatNoMatches: function () {
  return "No Results Found <a href='#' class='btn btn-danger'>Use it anyway</a>";
  }
});
于 2016-05-29T10:24:25.487 回答
-1

现在最好的解决方案是使用formatNoMatches选项。

它干净简洁。

用法: 您可以传递一个字符串,也可以传递一个返回字符串的函数formatNoMatches

例子:

$('#search-select').select2({
...
formatNoMatches: "Nothing found"
...
})

或者

$('#search-select').select2({
...
formatNoMatches: function () { retun "Nothing found"}
...
})

参考:https ://select2.github.io/select2/

于 2021-12-30T08:05:59.307 回答