在 jquery select2 中更改文本 "searching"

Change text "searching" in jquery select2

我正在使用带有 ajax 选项的 select2,当 ajax 运行时,文本 "searching" 出现,直到 ajax 成功。我想更改此文本(see in attached image).

我的代码是:(参考自https://select2.org

   $("#employee_id").select2({
      ajax: {
        url: "get_store_data.php?type=employee_data",
        dataType: 'json',
        delay: 250,
        data: function (params) {
          return {
            phrase: params.term, // search term,
            store_name: jQuery("#store_name").val(),
            page: 1
          };
        },

        processResults: function (data, params) {
            // console.log(data);
          params.page = params.page || 1;

          return {
            results: data.map(function(item) {
                return {
                    id: item.name,
                    text: item.name
                  };
            }),
            pagination: {
              more: 0
            }
          };
        },
        placeholder: 'Search for a member id',
        cache: true
      },
      escapeMarkup: function (markup) { return markup; }, 
      minimumInputLength: 1
    });

使用这个。对你有帮助。

  $("#employee_id").select2({
    ajax: {
      type: 'get',
      url: 'get_store_data.php?type=employee_data',
      delay: 300,
      dataType: 'json',
      data: function (params) {
        return {
          search: params.term
        };
      },
      processResults: function (data) {
        return {
          results: $.map(data, function (obj) {
            return {
              id: obj.id,
              text: obj.text,
            };
          })
        };
      }
    },
    minimumInputLength: 2,
    placeholder: "Please Select",
    escapeMarkup: function (m) {
      return m;
    }
  });

我没有找到任何如此编辑的选项 select2.min 文件。找到 searching:function(){return"Searching"}}}) 并在此处更改文本。它对我有用。

更改为:

searching:function(){return"Searching..."}}})

我猜这是一个 translation 问题。尝试包含翻译文件并编辑其中的文本。为 ex en.js 创建一个文件,放置代码:

    (function () {
if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) var e = jQuery.fn.select2.amd;
return e.define("select2/i18n/en", [], function () {
    return {
        errorLoading: function () {
            return "The results could not be loaded."
        }, inputTooLong: function (e) {
            var t = e.input.length - e.maximum, n = "Please delete " + t + " character";
            return t != 1 && (n += "s"), n
        }, inputTooShort: function (e) {
            var t = e.minimum - e.input.length, n = "Please enter " + t + " or more characters";
            return n
        }, loadingMore: function () {
            return "Loading more results…"
        }, maximumSelected: function (e) {
            var t = "You can only select " + e.maximum + " item";
            return e.maximum != 1 && (t += "s"), t
        }, noResults: function () {
            return "No results found"
        }, searching: function () {
            return "Searching…"
        }, removeAllItems: function () {
            return "Remove all items"
        }
    }
}), {define: e.define, require: e.require}})();

并根据您实际需要的翻译编辑这些字符串。

不要忘记在 select2.js

之后立即包含它

您可能还需要设置 语言:"en" 参数

如果您的理解正确,您想更改等待 Ajax 完成时出现的文本。该文本在完成后消失。默认情况下,文本为 "Searching..." . 下面的代码会将其更改为 "Something else...".

$("#employee_id").select2({
    language: {
        searching: function() {
            return "Something else...";
        }
    },
    ajax: {
        url: "get_store_data.php?type=employee_data",
        // etc.
    }
}

请参阅有关 Translation objects 的 Select2 v4 文档。