select2 with ajax 清除先前对焦点的响应

select2 with ajax clear previous responce on focus

使用 select2

$("#select").select2({
  ajax: {
    url: "/getcity",
    dataType: 'json',
    type: 'post',
    delay: 250,
    allowClear: false,
    minimumInputLength: 3,
    cache: true
  }
});

每次我聚焦时它都会发出没有参数的请求,只是 url。因此,如果在之前的良好请求中我收到了良好的数据,它会显示在 select 中,在下一个焦点 select2 中发出空请求并清除 select 中的数据。如何预防?

您应该将 minimumInputLength 和其他一些选项移到 ajax 之外,因为它们不是 ajax 的选项。在您的情况下,select2 永远不会获得选项 minimumInputLength 并且每次获得焦点时都会 ajax 调用。

$("#select").select2({
  ajax: {
    url: "/getcity",
    dataType: 'json',
    type: 'post',
    delay: 250,
    cache: true
  },
  allowClear: false,
  minimumInputLength: 3
});