我使用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();});
答案 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();});