自动完成时为 minLength 3,还有一个按钮,用于使用 minLength 0 手动搜索

minLength 3 on autocomplete and a button to manually search with minLength 0

本文关键字:minLength 用于 搜索 完成时 有一个 按钮      更新时间:2023-09-26

我正在尝试创建一个自动完成功能,当由于结果集的大小而键入少于 3 个字符时不会触发搜索。但是,有些名字的名字和姓氏中实际上只有 1 或 2 个字母。

解决方案是允许用户单击输入中的放大镜以提交或"强制通过"具有 1 或 2 个字符值的查询。

这是我所在的地方:.HTML:

<input id="mainSearch" class="ui-front" name="mainSearch" type="text" data-role="autocomplete" placeholder="Recognize a UPSer">
<a href="#" class="bgbutton"></a>

jquery:

$('#mainSearch').autocomplete({
    appendTo: ".inputWrapper",
    minLength: 3,
    source: function (request, response) {
        var customer = new Array();
        $.ajax({
            async: false,
            cache: false,
            type: "POST",
            url: "//database//EmployeeDirectory/",
            data: { "filterText": request.term },
            error: function (data) { console.log('Error!'); },
            success: function (data) {
                for (var i = 0; i < data.length ; i++) {
                    customer[i] = {
                        label: data[i].FullName,
                        Id: data[i].UserID
                    };
                }
            }
        });
        response(customer);
    }
});
$('.bgbutton').on('click', function () {
    $('#mainSearch').autocomplete('option', 'minLength', 0);
    $('#mainSearch').autocomplete('search', '');
});

这在第一次尝试时有效。但是,一旦输入了 2 个字符,单击提交按钮 minLength 就会为所有自动完成功能设置为 0。并且将退距到一个字符将进行完整查询。

两个自动完成函数如何具有独立的最小长度?

如果没有看到所有代码,很难确定。 但是,如果您在按钮单击事件结束时立即将 minLength 重置为 3,会发生什么情况?

$('.bgbutton').on('click', function () {
    $('#mainSearch').autocomplete('option', 'minLength', 0);
    $('#mainSearch').autocomplete('search', '');
    $('#mainSearch').autocomplete('option', 'minLength', 3);
});