Ответ 1
Мое предложение состояло в том, чтобы установить фокус на какой-либо другой элемент в диалоговом окне, когда он открывается, а не для разметки текстового поля. Это должно решить вашу проблему.
Надеюсь, что это поможет!
Я использую модальный диалог jQuery UI и заполняю его некоторыми полями формы. Из-за этой ошибки: http://bugs.jqueryui.com/ticket/4731, первый вход получает фокус при открытии диалога. Чтобы обойти это, я пытаюсь размыть затронутый вход, когда откроется диалог.
Проблема в том, что существует другая функциональность, которая вызывается для этого ввода на .blur()
, и я не хочу запускать эту функцию для этого.
Итак, я пытаюсь использовать .focusout()
и .trigger('focusout')
для достижения такого же эффекта, но без результатов.
Выполнение любого из этих действий:
$('#input-id').focusout();
$('#input-id').trigger('focusout');
фактически не приводит к потере фокуса входа, где использование .blur()
выполняется успешно. Я что-то упускаю, или есть другой способ выполнить то, что мне нужно?
Мое предложение состояло в том, чтобы установить фокус на какой-либо другой элемент в диалоговом окне, когда он открывается, а не для разметки текстового поля. Это должно решить вашу проблему.
Надеюсь, что это поможет!
Если вам посчастливится быстро взломать JavaScript, вы можете использовать:
$(':focus').blur();
Фокус не приводит к тому, что элемент теряет фокус. Вместо этого фокусировка запускается, когда элемент теряет фокус. Проверьте http://api.jquery.com/focusout/
Я использовал это как обходной путь:
$('body').focus();
Я использовал это без необходимости запуска javascript в драйвере selenium:
field.send_keys :tab