Ответ 1
Решение состоит в том, чтобы установить tabindex="-1"
в поля ввода ВСЕ, чтобы сохранить замещающие HTML-метки.
Я видел похожие вопросы по SO, включая этот, который является старым. Я читал и следил за ссылками, но неясно, есть ли правильное решение этой проблемы сегодня.
Моя нижняя проблема заключается в том, что я использую HTML placeholder="..."
в полях ввода. Автоматически фокусируясь на первом поле, его местозаполнитель больше не отображается пользователю.
ИЗМЕНИТЬ
Вот мой код HTML:
<div id='LOGIN_FORM' title="Login">
<form action="">
<input type="text" name="login_id" required="required"
placeholder="Enter user ID" /><br />
<input type="password" name="login_pwd" required="required"
placeholder="Enter password" /><br />
</form>
</div>
Вот мой код JS:
$("#login").click(function() {
$("#LOGIN_FORM").dialog({ modal: true }, { buttons: [
{
text: "Ok",
click: function() { $(this).dialog("close"); }
}
] });
});
Решение состоит в том, чтобы установить tabindex="-1"
в поля ввода ВСЕ, чтобы сохранить замещающие HTML-метки.
Что я сделал, я создал дополнительный ввод и сделал его невидимым (style="display:none"
), а затем дал ему свойство autofocus="true"
поместить это в конец вашего содержимого диалогового окна, чтобы он не испортил ничего. он должен выглядеть следующим образом:
<div><!--dialog div-->
<button></button>
<button></button>
<input type="hidden" autofocus="true" />
</div>
Я закончил это:
<input type="text" style="position: fixed; left: -10000000px;" disabled/>
Вы можете использовать jquery:
jQuery(document).ready(function(e) {
$('input[name="login_id"]').blur();
});
Это, если вам трудно отследить ошибку, почему автофокус установлен в ваше первое поле ввода формы. Обязательно вставьте этот код перед закрывающим тегом тега </body>
вашего документа.
Без JQuery и JavaScript мы можем предоставить только CSS-решение.
удалить все фокусы фокуса
:focus {
outline: 0;
}
добавить новый план фокусировки
:link:focus, :visited:focus {
outline: none;
}