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 */
}
더 많은 코드가 유용할지 알려주세요. 도와 주셔서 감사합니다.
를, 커서가 돌아갑니다 텍스트의 시작 부분. 파이어 버그 나 크롬 도구를 사용하여 코드를 실행하면 브라우저 전체에 포커스가 없어 커서가있는 위치와 이동할 때 볼 수 없기 때문에 무엇이 잘못 될지 알기가 어렵습니다. – smfoote
@smfoote - 내가 위에서 쓴 것을 사용해 보았습니까? 당신이 뭔가를 한 후에 * 커서를 설정하고 있습니까? 관련 HTML을 게시 할 수 있습니까? – TheCloudlessSky
위와 아래 화살표를 사용하여 초점을 다른 곳으로 이동해야하지만 위치는 저장하지 않아도되므로 복원 할 필요가없는 경우에 유용합니다. 기본 이벤트를 방지하는 것이 더 쉽습니다. –