Когда я использую автозаполнение пользовательского интерфейса JQuery, мне нужно, чтобы клавиша табуляции заполнила поле поиска первым элементом в результатах автозаполнения, после чего добавила пробел, а затем разрешить пользователю продолжить ввод.
<div class="ui-widget">
<form id="searchbox" method="GET" action="http://duckduckgo.com/">
<input id="search" type="text" name="q">
<input id="submit" type="submit" value="Search">
</form>
</div>
<script>
var tabKey = 9;
$('#search').autocomplete({
source: [ 'this', 'that', 'foobar' ],
delay: 0,
selectFirst: true,
select: function(event, ui) { if (event.keyCode == tabKey) {
$('#search').focus().select();
} }
});
// without this, the tab key doesn't trigger an event
$('.ui-autocomplete').keypress(function(event) {});
</script>
Другими словами, в приведенном выше примере, если кто-то набрал «th», он увидит «это» и «то» в вариантах автозаполнения. Нажатие на вкладку добавит «это» (обратите внимание на пробел )к вводу, и фокус останется на вводе.
Кто-нибудь может подсказать, что я пропустил? Я не очень хорошо знаю Javascript, поэтому короткие слова хороши:)
И, возможно, больше полезной информации (jquery 1.7.2 )из раздела HEAD:
<script src="js/jquery-latest.js"></script>
<script src="js/jquery-ui-1.8.20.custom.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/jquery-ui-1.8.20.custom.css" />
Изменить:Похоже, что autoFocus: true
получит я частично там. Теперь, если я могу просто понять, как удерживать фокус на поле ввода.