Come mantenere il Focus su una casella di testo? anche se fai clic in qualsiasi punto del browser.Come impedire a un elemento di perdere lo stato attivo?
$("#txtSearch").focus();
Come mantenere il Focus su una casella di testo? anche se fai clic in qualsiasi punto del browser.Come impedire a un elemento di perdere lo stato attivo?
$("#txtSearch").focus();
$("html").click(function(){
$("#txtSearch").focus();
});
Demo Live:http://jsfiddle.net/QhaLY/
* Tecnicamente * è ancora possibile digitare '# txtSearch2' se sei molto veloce. – h2ooooooo
@ h2ooooooo: O se premi "tab" –
@ h2ooooooo sono d'accordo con David. La mia risposta impedisce di fare clic in qualsiasi altro punto, ma non impedisce la tab. La risposta di Konstantin è la soluzione migliore. – Curt
$('body').click(function(){$("#txtSearch").focus();});
funziona perfettamente grazie all'uomo, molto apprezzato –
È necessario abbonarsi al blur
caso di textbox
e ripristinare messa a fuoco con un piccolo timeout:
$('#txtSearch').blur(function (event) {
setTimeout(function() { $("#txtSearch").focus(); }, 20);
});
In questo modo non ci si affida alla sottoscrizione degli eventi di nessun altro elemento nella pagina. Se ti iscrivi a body click
o html click
, non verrà eseguito se qualsiasi altro elemento impedisce la propagazione del suo evento click
, inoltre non funzionerà quando si esce da textbox
.
Esempio:
<!-- 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 questa è l'unica risposta finora che gestisce eventi come tabulati sfocati. –
Sfocatura è l'evento che si attiva quando l'elemento attivo è stato perso su un elemento – lucuma
@Curt Ho incluso alcune spiegazioni sul perché non gestire il clic. –
Ci sono altri modi di perdere fuoco che cliccando zona lontana dall'ingresso cioè tabulazione. Se si vuole evitare di perdere attenzione evento uso sfocatura cioè
document.getElementById('txtSearch').addEventListener('blur', e => {
e.target.focus();
});
Sto indovinando un sacco di caffè non è una risposta accettabile? Stai per forzare l'utente a premere invio per inviare il modulo? – lucuma
Nah lo toccherà perché sto usando un tablet –