Domanda

Ciao, ho avuto un jquery thickbox pop modale p sulla mia applicazione. ( iframe )
Tutto funziona alla grande ma voglio impostare il focus su un campo di input specifico d.

L'Iframe carica una normale pagina aspx, quindi ho pensato di fare $ (document) .ready (.. focus);
Ho inserito quello script nel codice IFrame

Tuttavia questo non funziona. Credo che dopo il "pronto" un altro codice viene eseguito dal thickbox in modo che perda nuovamente lo stato attivo. (ad esempio .. POSSO impostare il valore del campo di input in modo che il meccanismo funzioni ..

Qualcuno può aiutarmi a mettere a fuoco? Di seguito è riportato il mio codice di chiamata ..

<a href="page.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=550&width=700" title="Add" class="thickbox">Add</a>
È stato utile?

Soluzione

ThickBox visualizza il contenitore dell'iframe chiamando un metodo nell'evento onload dell'elemento iframe. Poiché l'iframe è nascosto nella pagina principale fino a quando non viene caricato il contenuto dell'iframe, non è possibile impostare lo stato attivo semplicemente utilizzando $ (documento) .ready (.. focus) ;. Il modo più semplice che ho trovato per aggirare questo è usare setTimeout per ritardare la chiamata di funzione che imposta lo stato attivo fino a quando non viene visualizzato l'iframe:

jQuery(document).ready(function() {        
    setTimeout(function(){
        $('#YourElementID').focus();   
    },200);
});

Nota: potrebbe essere necessario regolare il valore in millisecondi passato a setTimeout.

Altri suggerimenti

Da docs.jquery.com:

  

Attiva l'evento focus di ciascun elemento corrispondente.

     

Ciò causa l'esecuzione di tutte le funzioni associate all'evento focus.   Nota che questo non esegue il metodo focus degli elementi sottostanti.

Ciò significa che il tuo codice dovrebbe essere più probabilmente: $ ('# input_field'). get (0) .focus ()

La differenza è che usi nel mio esempio l'elemento focus dell'elemento DOM, mentre nel tuo usi jQuery.

Non funziona ancora , ma è forse un passo nella giusta direzione.

Saluti,

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top