Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    158

    capire se evento focus è attivo o no

    Ciao a tutti!

    Sto cercando un modo per sapere se un input text di un form ha il focus attivo per eseguire alcune istruzioni.

    in pratica sto cercando un metodo che mi restituisca TRUE se il campo ha il focus e FALSE se il campo non ha il focus.

    La cosa migliore sarebbe una cosa tipo il:

    this.checked

    pero cercando un po in internet non ho trovato una cosa del genere...

    ho provato con:

    this.focused oppure this.hasFocus, ma mi restituisce undefined.

    Grazie in anticipo!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    <input type="text" id="mioid" name="campotext" onfocus="mifunzionechesiscatenaalfocus()" />
    window.onload=function(){
    document.getElementById("mioid").onfocus=function( ){miafunzionechesiscatenaalfocus()}
    }
    Se invece vuoi rilevare il cursore nel campo non mi risulta possibile
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, la situazione più comune è quella in cui viene usato un gestore di evento, in questo caso onfocus (come ti ha indicato Andrea).

    Dal momento che avviene l'evento focus, su un determinato elemento, è chiaro che all'interno della funzione associata, tale elemento (quindi this) ha il focus attivo. Non capisco quindi il senso della tua richiesta.

    Ad ogni modo...
    Quote Originariamente inviata da cavicchiandrea
    Se invece vuoi rilevare il cursore nel campo
    puoi usare la proprietà document.activeElement con cui fare un confronto col tuo elemento.

    Un esempio pratico:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <script type="text/javascript">
          function verificaFocus(id){
            var e = document.getElementById(id)
            alert(e === document.activeElement?"Il campo è selezionato":"Non hai selezionato il campo");
          }
          setTimeout("verificaFocus('campo')",3000)
        </script>
      </head>
      <body>
        Seleziona il campo entro 3 secondi
        <input id="campo">
      </body>
    </html>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    158
    io vorrei controllare se un determinato campo è attivo e eseguire delle istruzioni ... tipo così:
    codice:
    function verificaFocus(id){        var e = document.getElementById(id);        if(e === document.activeElement){            alert("attivo!");                    ... fai alcune cose ...        }else{            alert("disattivo");                        ... fai altre cose ...        }              }
    il problema è che va sempre nel ramo disattivo anche se è attiva la textbox...

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non so come tu lo stia applicando, ma con questa paginetta minimale funziona perfettamente
    codice:
    <script>
    setTimeout(function(){verificaFocus('ab')},3000)
    function verificaFocus(id){ var e = document.getElementById(id);  if(e === document.activeElement){  alert("attivo!");   }else{  alert("disattivo");      }    }
    </script>
    <body>
    <input type="text" id="ab">
    </body>
    Come richiami il controllo? sei sicuro che gli oggetti interrogati esistono gia' quando lo richiami? almeno un alert del value del campo funziona?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.