1

我使用 JQuery 插件自动完成作为一种数据集选择器。如果用户从自动完成查找中选择一个值,则会查询数据库以查找匹配的数据集。如果用户键入新值,则用户可以输入新数据集。当用户键入现有值而不是从自动完成查找中选择它时,就会出现问题。完成后,.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();});
4

1 回答 1

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();});
于 2010-05-13T22:29:00.507 回答