我在文本输入上使用jQuery自动完成功能,如果用户单击其中一个自动完成选项,则需要立即响应。如果用户手动输入内容或修改了他们从自动填充中选择的内容,我还想响应更改事件。
简而言之,如果select和change事件之间的输入文本相同,我不想冗余地运行该函数。
function attachPartAutocomplete(id, changeFunc) {
$("#" + id).autocomplete({
source: function(request, response) {
$.ajax({
url: "AJAXHandlerInLogisitcs",
dataType: "json",
data: {
method_name: "searchPart",
rows: 20,
part: request.term,
task: "com.acme.logistics.ReqAjax"
},
success: function(data) {
response(data);
}
});
},
select: function(event, ui) {
if (typeof changeFunc == 'function') {
changeFunc(ui.item.value);
}
},
change: function(event, ui) {
if (typeof changeFunc == 'function') {
changeFunc(this.value);
}
},
delay: 0,
minLength: 2,
open: function() {
$(".ui-autocomplete").css({
fontSize: "75%",
overflowY: "auto"
});
}
});
}
选择之后是否有事件我可以设置标志,如果发生了什么? 有没有办法摆脱选择事件的待定更改事件?这样我只会在选择之后发生更改事件。 处理这个问题的优雅方法是什么?