Я использую компонент Ajax.Autocompleter, который отлично работает - кроме амперсандов в некоторых браузерах. Проблема заключается в том, что вместо того, чтобы печатать знак амперсанда в поле поиска, он действует как стрелка вверх в списке предложений ajax. Это приводит к тому, что мои пользователи не могут записывать имена с амперсандами в поле поиска.Отключить прокрутку списка предложений Ajax.Autocompleter через '&' и ')'
http://github.com/madrobby/scriptaculous/wikis/ajax-autocompleter
Конкретные случаи поведения:
Если я пытаюсь напечатать амперсанд в моем поле поиска перед списком с предложениями показано, амперсанд добавляется в поле поиска и все Что ж.
Если я пытаюсь напечатать амперсанд после списка предложений уже виден, он будет перемещаться к концу списка вместо этого, и ничего не будет добавлен в поле поиска (Chrome).
Если я повторю этот сценарий в IE11, он также переместится в конец списка, но также добавит амперсанд в поле поиска. Однако в этом случае поиск ajax не будет активирован - список предложений останется таким, каким он был до того, как я нажму кнопку «&», , независимо от того, что поле поиска не заканчивается &.
Firefox просто добавляет символ «&» в поле поиска и обновляет список предложений автозаполнения. Как и следовало ожидать.
Методом проб и ошибок, я заметил, что:
- Когда я открываю F12 в хроме и отладки JavaScript, амперсанд печатается вместо навигации по списку внушения. Когда отладка отключена, он ничего не печатает и не переводит.
- Если я использую ctrl + v, чтобы вставить амперсанд в поле поиска, он отлично работает во всех браузерах. С другой стороны, left alt + 38 делает вещи, упомянутые выше, такие же, как и обычный ключ.
Мой код:
<input name="searchTxt" id="searchTxt" type="text" autocomplete="off" />
<div id="autocompleteResults" style="display:none;border:1px solid black;background-color:white;text-align:left;"></div>
<script type="text/javascript" language="javascript" charset="utf-8">
new Ajax.Autocompleter('searchTxt','autocompleteResults','someUrlToGetAutocompleteResults', {});
</script>
Единственные подсказки, которые я смог найти до сих пор довольно слаб:
- Кто-то, имеющий туманно подобную проблему амперсанд в хроме и поиска YouTube https://productforums.google.com/forum/#!topic/chrome/mpt4fkaAQPg
- Другая резьба StackOverflow относительно Ajax.Autocompleter, но довольно несвязанная How do I make an Ajax.Autocompleter perform a request without typing?
Любая помощь приветствуется - я подробно рассмотрю проект Ajax.Autocompleter, но поскольку это казалось, что это также может быть связано с браузером, я спросил с надеждой, что у кого-то может быть хотя бы частичный ответ ,