我有以下自动填充代码:
$(function() {
var availableTags = [
" x",
"y",
"z",
"l",
"m",
"n",
"o",
];
$( ".tags" ).autocomplete({
source: availableTags,position: { my : "left+2 bottom-50" , of:".tags"}
});
});
它工作正常但是当我使用向上/向下键选择建议的文本时,所选文本会立即替换为文本字段。相反,我希望只有在选择按下ENTER时才能替换它。有没有办法实现这个目标?
答案 0 :(得分:7)
当查看建议元素时(也使用箭头键)会触发focus
事件,因此您可以使用preventDefault
方法阻止默认操作。
重点快速参考:
将焦点移动到某个项目时触发(不选择)。默认 action是用文本字段的值替换 聚焦项目,但仅在事件由键盘触发时 相互作用。取消此事件会阻止该值 已更新,但不会阻止菜单项被聚焦。
代码:
$(function () {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"];
$("#tags").autocomplete({
source: availableTags,
position: {
my: "left bottom",
at: "left top",
},
focus: function (event, ui) {
event.preventDefault();
}
});
});
答案 1 :(得分:3)
focus: function (event, ui) {
event.preventDefault();
}
试试这个。这不会改变你的焦点价值!请注意your-input-field-id
是输入字段的ID。