Как сохранить фокус на одном текстовом поле? даже если вы щелкните в любом месте браузера.Как предотвратить элемент от потери фокуса?
$("#txtSearch").focus();
Как сохранить фокус на одном текстовом поле? даже если вы щелкните в любом месте браузера.Как предотвратить элемент от потери фокуса?
$("#txtSearch").focus();
$("html").click(function(){
$("#txtSearch").focus();
});
$('body').click(function(){$("#txtSearch").focus();});
Он отлично работает благодаря мужчине, высоко ценится –
Вы должны подписаться на blur
случае textbox
и восстановить фокус с небольшой тайм-аут:
$('#txtSearch').blur(function (event) {
setTimeout(function() { $("#txtSearch").focus(); }, 20);
});
Таким образом, вы не полагаетесь на подписку на события любого другого элемента на странице. Если вы подписаны на body click
или html click
, он не будет работать, если какой-либо другой элемент предотвратит распространение его события click
, также он не будет работать, если табуляция из textbox
.
Пример:
<!-- I will not propagate my click to top level DOM elements -->
<button id="button">Click me</button>
<script>
$('#button').click(function (event) {
event.stopPropagation();
});
</script>
+1 Это единственный ответ, который до сих пор обрабатывает события, такие как табуляция из фокуса. –
Blur - это событие, которое срабатывает, когда фокус был потерян на элементе. – lucuma
@Curt. Я включил некоторое объяснение, почему не обрабатывать щелчок. –
Есть другие способы потери фокуса, чем нажав область от входа т.е. табуляции. Если вы хотите, чтобы предотвратить потери фокуса использование размытия события т.е.
document.getElementById('txtSearch').addEventListener('blur', e => {
e.target.focus();
});
Я предполагаю, что много кофе не приемлемый ответ? Вы собираетесь заставить пользователя нажать Enter, чтобы отправить форму? – lucuma
Нет, он прикоснется к ней, потому что я использую планшет –