自动填充:如何避免重复搜索?

时间:2010-03-09 13:21:58

标签: jquery-autocomplete

我使用JQuery插件autocomplete作为一种数据集选择器。如果用户从自动完成查找中选择一个值,则会查询数据库以查找匹配的数据集。如果用户键入新值,则用户可以输入新数据集。当用户键入现有值而不是从自动完成查找中选择时,会出现问题。完成此操作后,不会调用自动完成.result()方法,也不会检索任何数据集。为了解决这个问题,我在输入元素中添加了.blur(function(){$(this).search();});。这解决了原来的问题。

现在我遇到.result()从查找和模糊中选择的问题。我希望.result()触发查找或模糊选择。我该如何做到这一点?

这是我的代码:

$('#groupset').autocomplete('ajax/php/leeruns.php');
$('#groupset').result(
    function(event, data, formatted) {
        if(data){
            $('#groupsetdesc').val(formatted);
            groups.load(data[1]); //retrieve matching dataset
        } else {
            $('#groupsetdesc').val('');
        }
    }
).blur(function(){$(this).search();});

1 个答案:

答案 0 :(得分:1)

您可以将数据的当前值存储在名为previous的持久变量中,如果相同则不加载数据集。

var loaded_previous;
$('#groupset').autocomplete('ajax/php/leeruns.php');
$('#groupset').result(
function(event, data, formatted) {
    if(data && data[1] != loaded_previous){
        loaded_previous = data[1];
        $('#groupsetdesc').val(formatted);
        groups.load(data[1]); //retrieve matching dataset
    } else {
        $('#groupsetdesc').val('');
    }
}
).blur(function(){$(this).search();});