Невозможно убрать автофокус в диалоговом окне пользовательского интерфейса

Первый элемент в моем диалоговом окне пользовательского интерфейса jQuery - это ввод, который при выборе открывает средство выбора даты ...

Как я могу отключить выбор этого входа в первую очередь?


person Josh    schedule 22.03.2012    source источник
comment
У вас есть тестовая страница? или создайте скрипку, показывающую ваше дело   -  person Starx    schedule 22.03.2012
comment
это универсальная задача с пользовательским диалогом.   -  person Josh    schedule 23.03.2012


Ответы (3)


Добавьте следующий код перед вызовом диалогового окна. Это очистит код автофокуса. У меня работает в jquery 2.0.3.

$.ui.dialog.prototype._focusTabbable = function(){};
person LaXDragon    schedule 16.08.2013
comment
спасибо - это помогло моей проблеме диалога всегда возвращаться к первому элементу, а не только при открытии - person Adam; 27.03.2014
comment
Именно то, что я искал! - person jbolanos; 19.04.2014
comment
отличный. В настоящее время мне нужно смешивать jqueryUI и bootstrap, а также использовать множество диалогов без входных данных, из-за чего все мои первые диалоговые кнопки имели состояние зависания и, следовательно, выглядели сломанными. Это решает эту проблему - person kabal; 14.08.2014
comment
Требуется jQuery UI 1.10 или выше. - person Salman A; 11.09.2014
comment
Это бестолково, но отлично справляется. Спасибо, что сэкономили мне то, что, вероятно, заняло бы уйму времени. - person AJB; 18.10.2015
comment
Это должен быть принятый ответ. Работает на меня - person Linga; 26.10.2015
comment
Большое спасибо!! Я сошел с ума! - person Héctor Ortiz; 23.12.2015
comment
Предупреждение: когда диалоговое окно всплывает, нажатие клавиши Escape не закрывает диалоговое окно (пока вы не сфокусируете диалоговое окно). - person Robert; 27.07.2016

Очень просто, просто активируйте событие blur на элементах ввода, когда откроется диалоговое окно.

$("#dialog").dialog({
    open: function(event, ui) {
        $("input").blur();
    }
});

Проверьте это здесь

Решение с указателем даты

ПРИМЕЧАНИЕ. Для более подробного решения этой проблемы прочтите этот ответ тоже.

person Starx    schedule 23.03.2012
comment
К сожалению, это не работает при работе с диалоговым окном, в котором autoOpen: false. jsfiddle.net/8VbEU/134 - person Wulfhart; 28.03.2014

JQuery устанавливает автофокус на первый найденный ввод.
Так что играйте подло, создавая "фальшивый" ввод в первой строке вашего диалога следующим образом:

<input type='text' size='1' style='position:relative;top:-500px;' />

Таким образом, ваш ввод будет вне окна и будет в фокусе. Проблема решена для меня; p

person kts    schedule 12.12.2012