3

我正在使用 jquery 自动完成插件。配置为使用多个值。

我设置选项 minLength : 2

minLength 选项仅适用于第一个自动建议的单词,对于多个值它不起作用。

我如何配置或需要覆盖哪种方法来解决此问题。

http://jqueryui.com/demos/autocomplete/#multiple

4

2 回答 2

8

jQuery UI 网站上的多个远程演示演示了这种行为。您只需要添加一个自定义搜索功能:

$('#autocomplete').autocomplete({
    search: function() {
        // custom minLength
        var term = extractLast( this.value );
        if ( term.length < 2 ) {
            return false;
        }
    }
});

请参阅:http: //jqueryui.com/demos/autocomplete/#multiple-remote

于 2012-04-09T01:47:49.040 回答
1

我发现 Christian 2012 年的版本非常有用,但这里有一个在 2016 年可以使用的重新设计的版本(jQuery UI 1.12.0):

function split(val) {
  return val.split(/\s+/);
}

function extractLast(term) {
  return split(term).pop();
}

source: function(request, response) {
  // delegate back to autocomplete, but extract the last term
  const term = extractLast(request.term)
  if (term.length < this.options.minLength) {
    return false;
  }
  response($.ui.autocomplete.filter(
    data, term));
}

minLength选项只需像往常一样提供,然后将在source函数内部使用。如果需要更多上下文,请参阅演示。

演示

于 2016-09-08T19:58:49.773 回答