在jquery select2

时间:2019-04-24 09:55:32

标签: jquery ajax jquery-select2

我正在将select2与ajax选项一起使用,并且当ajax运行时,将出现文本“搜索”,直到ajax获得成功为止。我想更改此文本(see in attached image)。enter image description here

我的代码是:(引用自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
    });

4 个答案:

答案 0 :(得分: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;
    }
  });

答案 1 :(得分:0)

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

更改为:

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

答案 2 :(得分:0)

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

<?php

if(ini_get('always_populate_raw_post_data') != '-1')
{
    // Get the path to php.ini file
    $iniFilePath = php_ini_loaded_file();

    // Get the php.ini file content
    $iniContent = file_get_contents($iniFilePath);

    // Un-comment (if commented) always_populate_raw_post_data line, and set its value to -1
    $iniContent = preg_replace('~^\s*;?\s*always_populate_raw_post_data\s*=\s*.*$~im', 'always_populate_raw_post_data = -1', $iniContent);

    // Write the content back to the php.ini file
    file_put_contents($iniFilePath, $iniContent);

    // Exit the php script here
    // Also, write some response here to notify the user and ask to restart Apache / WAMP / Whatever.
    exit;
}

并使用您实际需要的翻译来编辑这些字符串。

别忘了在select2.js之后添加它

您可能还需要设置 language:“ en” 参数

答案 3 :(得分:0)

如果正确理解您的要求,则想更改等待时显示的文本(以完成Ajax。该文本在完成后会消失。默认情况下,该文本为“正在搜索...”。下面的代码将将其更改为“其他...”。

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

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