如何防止服务器调用带有远程数据的Select2中的空字符串?

时间:2016-03-25 20:04:28

标签: ajax select2

我注意到即使我只输入空格,Select2小部件服务选项与远程数据也在进行通话。这通常会返回一个空数组,但我想完全取消这个调用。

所以这就是我所做的。

2 个答案:

答案 0 :(得分:0)

Select2插件允许我们通过transport选项定义我们自己的AJAX调用处理程序。

来自文档

  

Select2使用ajax.transport中定义的传输方法向API发送请求。默认情况下,此传输方法是jQuery.ajax,但可以更改

因此,您可以完全消除不必要的呼叫。

$('select').select2({
...
  ajax: {
    transport: function (params, success, failure) {
      if (!params.data.q.trim().length) {
        return false;
      }
      var $request = $.ajax(params);

      $request.then(success);
      $request.fail(failure);

      return $request;
    }
  }
...
})

blog的更详细的摘录。

答案 1 :(得分:0)

Select2有一个minimumInputLength选项,可以为您处理。当用户需要输入更多字符时,它会显示通知,然后在输入足够的信息时发出请求。