Как установить фокус на текстовое поле при загрузке диалогового окна jquery - PullRequest
0 голосов
/ 07 марта 2011

Когда я выполняю строку ниже, диалог открывается правильно.

$('#divMyDialogBox').dialog('open');

Но у меня есть текстовое поле (т.е. txtAddr) внутри div (диалоговое окно), и я хочу, чтобы фокус отображался при загрузке.

Я попробовал следующеекод, но он не работает.Пожалуйста, исправьте то же самое или предложите новые решения.

        $('#divEmailDialogBox').dialog
        ({
            modal: true,
            draggable: true,
            hide: 'slide',
            show: 'slide',
            height: 100,
            width: 575,
            bgiframe: true,
            autoOpen: false,
            resizable: false,
            closeOnEscape: false,
            zIndex: 9999,
            open: function(){alert("Hi"); $("#txtAddr").focus();}
        });

    <%if(true)
    {%>
               $('#divEmailDialogBox').dialog('open');
    <%}

Здесь срабатывает предупреждение, указывающее, что код вызывается.

Заранее спасибо, Biki

Ответы [ 3 ]

0 голосов
/ 07 марта 2011

Лучше всего убедиться, что на странице нет другого текстового поля с таким же идентификатором.Можете ли вы вставить свой HTML здесь, пожалуйста?

0 голосов
/ 31 мая 2011

Попробуйте заменить текущее шоу следующим:

show: { effect: 'slide', complete: function() { $(this).find("#txtaddr").focus(); }},

Это должно работать для Jquery UI 1.8.4 +

0 голосов
/ 07 марта 2011

Ваша функция вызывается вообще? Он вызывается до или после появления диалога? (Вы можете изменить focus вызов с помощью alert, чтобы узнать).

Вы пытались использовать диалоговое событие focus вместо события open?

...