我有以下代码。
function halle(row, settings, row_element) {
$('input', row).autocomplete({
minLength: "0",
source: "../../shared/hallensuche.aspx",
select: function (e, ui) {
$(this).val(ui.item.label);
//update hallennr
var aPos = oTableAnwurfzeiten.fnGetPosition(row_element);
oTableAnwurfzeiten.fnUpdate(ui.item.value, aPos[0], 11);
isHalleChanged = true;
$(this).focus().select();
return false;
},
search: function (e, ui) {
},
focus: function (e, ui) {
$(this).val(ui.item.label);
return false;
}
}).focus(function (e, ui) {
$(this).autocomplete("option", "source", "../../shared/hallensuche.aspx?focus=true");
$(this).trigger('keydown.autocomplete');
$(this).select();
return false;
}).keydown(function (e, ui) {
$(this).autocomplete("option", "source", "../../shared/hallensuche.aspx?focus=false" + $('input', row).val());
});
}
如果我在输入中写入内容,则执行keydown命令。在.focus没有任何反应。当我尝试alert()时,它可以工作。不执行自动完成,因此不会发送“focus = true”。有谁知道我做错了什么?
抱歉我的英文不好:D
答案 0 :(得分:0)
尝试使用focusin
代替焦点。更新的代码看起来像,
$('input', row).autocomplete({
minLength: "0",
source: "../../shared/hallensuche.aspx",
select: function (e, ui) {
},
search: function (e, ui) {
},
focus: function (e, ui) {
$(this).val(ui.item.label);
return false;
}
}).on("focusin",function (e, ui) {
console.log("trigger here");
}).keydown(function (e, ui) {
});
参见演示here。