Вы можете ввести в поле назначения/Отели URL: http://think.thinkhotels.com/автозаполнения вопрос в хроме
Он будет автоматически предложить вам. функциональность работает нормально. Но когда вы нажимаете клавишу со стрелкой влево/вправо, курсор перемещается влево/вправо, как обычно, в все браузеры, кроме хрома.
Я попытался изменить код в http://think.thinkhotels.com/autofill/jquery.autocomplete.js
Это был код
$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
// a keypress means the input has focus
// avoids issue where input had focus before the autocomplete was applied
hasFocus = 1;
// track last key pressed
lastKeyPressCode = event.keyCode;
switch(event.keyCode) {
case KEY.UP:
event.preventDefault();
if (select.visible()) {
select.prev();
} else {
onChange(0, true);
}
break;
я добавил несколько строк так, что она позволяет избежать каких-либо действий в стрелку влево/вправо ниже модифицированный код
$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
// a keypress means the input has focus
// avoids issue where input had focus before the autocomplete was applied
hasFocus = 1;
// track last key pressed
if(event.which ==KEY.LEFT || event.which == KEY.RIGHT) {
return true;
}
lastKeyPressCode = event.keyCode;
switch(event.keyCode) {
case KEY.UP:
event.preventDefault();
if (select.visible()) {
select.prev();
} else {
onChange(0, true);
}
break;
Ключ заключается в следующем
var KEY = {
UP: 38,
DOWN: 40,
DEL: 46,
TAB: 9,
RETURN: 13,
ESC: 27,
COMMA: 188,
PAGEUP: 33,
PAGEDOWN: 34,
BACKSPACE: 8,
LEFT: 37,
RIGHT: 39
};
Но проблема не устранена. Я попытался вернуть false; также это также не сработало. Я пробовал event.preventDefault(), который также не работал.
Можно ли найти решение пожалуйста