自动完成时minLength 3和用minLength 0手动搜索的按钮

时间:2014-11-12 17:06:36

标签: javascript jquery autocomplete

我正在尝试创建一个自动完成功能,当由于结果集的大小而输入少于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以用于所有自动完成功能。退回到一个字符将进行完整查询。

两个自动完成功能如何具有独立的minLengths?

1 个答案:

答案 0 :(得分:1)

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

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