Предотвратите jQuery диалоговое окно UI от установки фокуса к первому текстовому полю

Я был в Вашем положении назад в ноябре. Я наконец получил его работа и записал мне направления. Как ни странно, вчера я решил отправить его как моя первая статья о моем веб-сайте. Это - направления для установки Схемы в Ubuntu, но это могла бы быть удобная ссылка в случае, если Вы застреваете с чем-то. Если ничто иное, кто-то еще мог бы найти этот вопрос и найти его полезным. Надежда это помогает.

153
задан kay 25 March 2013 в 19:58
поделиться

5 ответов

Установите tabindex ввода на -1, а затем установите dialog.open, чтобы восстановить tabindex, если он понадобится позже:

$(function() {
    $( "#dialog-message" ).dialog({
        modal: true,
        width: 500,
        autoOpen: false,
        resizable: false,
        open: function()
        {
            $( "#datepicker1" ).attr("tabindex","1");
            $( "#datepicker2" ).attr("tabindex","2");
        }
    });
});
10
ответ дан 23 November 2019 в 22:05
поделиться

Это может быть связано с поведением браузера, а не с плагином jQuery. Вы пытались удалить фокус программно после открытия всплывающего окна.

$('#lnkAddReservation').click(function () {
    dlg.dialog('open');

    // you may want to change the selector below
    $('input,textarea,select').blur();

    return false;
});

Не тестировали, но должно работать нормально.

1
ответ дан 23 November 2019 в 22:05
поделиться

Я обнаружил следующий код функции диалогового окна jQuery UI для открытия.

c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();

Вы можете либо обойти поведение jQuery, либо изменить его.

tabindex -1 работает как обходной путь.

c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();

1154442]

28
ответ дан 23 November 2019 в 22:05
поделиться

У меня было содержимое, которое было длиннее, чем диалог.При открытии диалоговое окно переходит к первому: tabbable, который находился внизу. Вот и мое исправление.

$("#myDialog").dialog({
   ...
   open: function(event, ui) { $(this).scrollTop(0); }
});
7
ответ дан 23 November 2019 в 22:05
поделиться

Вы можете добавить это:

.. .

dlg.dialog({ autoOpen:false,
modal: true, 
width: 400,
open: function(){                  // There is new line
  $("#txtStartDate").focus();
  }
});

...

-1
ответ дан 23 November 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: