如何在Select2 v4.0中修改“未找到结果”的语言

69
我在初始化Select2时尝试使用"language.noMatches"选项,但它会抛出未定义的函数?我该如何修改这一部分文本?如果用户输入的文本不存在,我想包含一个HTML按钮来添加它。我已经尝试将其作为函数和纯文本实现。我还删除了所有HTML以查看是否存在此问题。

我在初始化 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”。


由于翻译工作中的当前错误,您必须在“语言”下指定所有翻译。 - Kevin Brown-Silva
4个回答

145

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 方法,以便按钮呈现正确,如此 问题 所述。


5
我怎样获取用户输入并传递到“noResults”函数中呢? 例如:"noResults": function(term){ return term+" 没有找到,请尝试其他关键词"; } - Shiro
注意:这非常有帮助,因为我不知道如何更改任何消息。这适用于 i18n 目录中的所有消息。 - Joel Worsham
@Shiro,你找到解决问题的方法了吗? - jameshwart lopez
4
语言: { noResults: () => "未找到结果 (修改)",}, - Aldo

48

可能需要添加所需语言的脚本。类似以下内容:

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

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

$(".select2").select2({
  "language": "pt-BR"
});

感谢您提供这个好用的解决方案。它应该被添加到官方的select2文档中!经过一些检查,pt-BR.js文件可以位于任何目录,并以任何方式命名,重要的是在文件开头返回e.define("select2/i18n/pt-BR"...以便被识别。 - Edouard Thiel
如果您的应用程序是多语言的,您只需要导入所需的脚本语言,根据当前语言,select2 将处理其余部分。 - marsalal1014

15

选择2.5的选项似乎formatNoMatches

$('#search-select').select2({
  formatNoMatches: function () {
  return "No Results Found <a href='#' class='btn btn-danger'>Use it anyway</a>";
  }
});

2

目前最好的解决方案是利用 formatNoMatches 选项。

它干净简洁。

用法:您可以传递一个字符串或返回字符串的函数到 formatNoMatches 中。

示例:

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

或者

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

Ref: https://select2.github.io/select2/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接