我正在使用jQuery的自动完成功能,我按照以下方式进行设置
$('#id').autocomplete({
source: function (request, response) {
$.ajax({
url: 'myurl'
, type: 'POST'
, dataType: 'json'
, data: { 'query': request.term }
, success: function (data) {
response($.map(data, function (item) {
return { label: item, value: item };
}));
}
});
},
delay: 300,
minLength: 2,
close: function (event, ui) { doAjaxStuffNow() },
change: function (event, ui) { doAjaxStuffNow() }
});
我正在使用close和change函数,因为我想通过ajax调用实现的时间。我希望它在菜单关闭时执行,或者在菜单永远不会打开的情况下,当字段模糊时执行。问题是,如果菜单关闭然后字段模糊,它会触发两次,所以我想知道是否有人知道如何实现近距离x变化的效果。
谢谢, 汤姆
答案 0 :(得分:1)
您可以使用焦点和模糊方法来确定值是否已更改。
$("#combo_input_id").focus(function() {
oldval = $(this).val();
}).blur(function(){
if(oldval != $(this).val()){
doAjaxStuffNow();
};
return false;
});
它不是很漂亮,但它完成了工作。我希望未来版本的jqueryui会触发更改方法,即使用户从不输入输入。