Автозаполнение Jquery :Использование табуляции для выбора первого элемента и сохранение фокуса на поле поиска

Когда я использую автозаполнение пользовательского интерфейса 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получит я частично там. Теперь, если я могу просто понять, как удерживать фокус на поле ввода.

8
задан Ovid 3 May 2012 в 07:58
поделиться