JQuery UI 1,7 диалогового окна автозаполнения при выборе - PullRequest
1 голос
/ 30 марта 2010

Я использую виджет автозаполнения и хотел бы, чтобы диалоговое окно отображалось при выборе элемента. Диалог действительно появляется, но я хочу, чтобы поле в диалоге получало фокус при его открытии. Вот что я пробовал до сих пор:

// HTML

<form action="#">
  <p><input id="busca" /></p>
</form>
<div id="agregar" title="Agregar Parte">
  <label for="cantidad">Cantidad:</label>
  <input name="cantidad" id="cantidad" size="3" />
</div>

// JQuery

 $(function(){

        $("#agregar").dialog({
                        autoOpen: false,
                        //also tried open: function(){$("#cantidad").focus()}
                        }
              );      
        //.bind("dialogfocus", ... ) does not work either
        $("#agregar").bind("focus", function(){
                   $("#cantidad").focus(); });

    $("#busca").autocomplete({
            source: "/carrito/autocomplete/",
            minLength: 1,
                        select: function(e, ui) {
                          $("#agregar").dialog("open");
                        }
        });


      });

Я думаю, что поведение по умолчанию для автоматического выбора все еще делает что-то, поскольку виджет автоматического выбора получает фокус после отображения диалога.

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 30 марта 2010

Попробуйте переопределить поведение автозаполнения:

$("#agregar").dialog({
  autoOpen: false,
  open: function(){
      setTimeout(function() { $("#cantidad").focus(); }, 0);
  }
});

Это ставит в очередь .focus() для запуска после выполнения кода выбора. Это то, что делает автозаполнение ( прямо из исходного кода, строка 604 ): вызов вашего выбора (и этой открытой функции) с последующим откатом фокуса назад:

select();
// TODO provide option to avoid setting focus again after selection? 
// useful for cleanup-on-focus
input.focus();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...