我正在尝试构建一个表单,其工作方式类似于 Google 搜索页面、Gmail 和其他几个页面(包括此页面 - 请参阅“提问”页面上的“标签”输入)。输入文本时,会出现一个选项列表,用户可以使用向上和向下箭头来选择他们想要的选项。
我遇到的问题是向上箭头将光标/插入符号放在字段的位置 0,而向下将它放在最后。有没有一种简单的方法可以防止它移动到开头/结尾,或者我需要在我的函数运行之前找到插入符号的位置,然后再将它重新定位到那个位置?
这是在输入元素 (onkeyup) 中输入文本时运行的函数的开始。
var keycode = checkKeycode (event); // returns the keycode of the key pressed.
if (keycode == 38) { // up arrow
var selection = $(".optionsSelected").attr("id");
var selId = parseInt(selection.replace('briefOption', ''));
if (selId != 0) {
$(".optionsSelected").removeClass("optionsSelected");
var newSelId = selId - 1;
$("#briefOption"+newSelId).addClass("optionsSelected");
}
}
else if (keycode == 40) { // down arrow
var selection = $(".optionsSelected").attr("id");
var selId = parseInt(selection.replace('briefOption', ''));
if (selId != numAvEmps && numAvEmps != 0) {
$(".optionsSelected").removeClass("optionsSelected");
var newSelId = selId + 1;
$("#briefOption"+newSelId).addClass("optionsSelected");
}
}
else if (keycode == 27) { // Escape
$("#docDropDown").css("display","none");
}
else if (keycode == 9 || keycode == 13) { //tab or enter
/* Fill form */
}
让我知道是否还有更多代码有用。谢谢您的帮助。