VisualLightBox mit iframe. Setzen Sie den Fokus auf Eingabefeld
-
06-07-2019 - |
Frage
Hallo, ich hatte ein jquery thickbox modal popu p auf meiner Anwendung. ( iframe )
Alles funktioniert gut, aber ich mag den Fokus setzen spezifischen Eingang Fällt d.
Die Iframe lädt eine normale aspx Seite, also dachte ich, ich würde ein $ (document) .ready tun (.. Fokus);
Ich habe das Skript in dem IFrame-Code
Doch das funktioniert nicht. Ich glaube, dass nach dem „ready“ einige andere Code durch den thickbox ausgeführt wird, so dass sie wieder den Fokus verliert. (Zum Beispiel .. ich den Wert des Eingabefeldes gesetzt, so der Mechanismus funktioniert ..
Kann mir jemand helfen, den Fokus gesetzt? Unten ist meine Berufung Code ..
<a href="page.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=550&width=700" title="Add" class="thickbox">Add</a>
Lösung
ThickBox zeigt den Behälter iframe durch ein Verfahren, bei dem onload-Ereignis des iframe Element aufrufen. Da der iframe, bis auf der übergeordneten Seite versteckt wird, nachdem der Inhalt des iframe geladen werden können Sie den Fokus nicht einfach eingestellt $ (document) .ready (.. Fokus) mit ;. Der einfachste Weg, die ich gefunden habe, dies zu umgehen ist setTimeout zu verwenden, um den Funktionsaufruf zu verzögern, die den Fokus setzt erst nach dem iframe angezeigt wird:
jQuery(document).ready(function() {
setTimeout(function(){
$('#YourElementID').focus();
},200);
});
. Hinweis: Sie können den Millisekundenwert einstellen müssen, um Sie zu SetTimeout passieren
Andere Tipps
Von docs.jquery.com:
Löst den Fokus Ereignis jedes verglichene Element.
Dies bewirkt, dass alle Funktionen, die mit dem Fokus Ereignisse gebunden wurden ausgeführt werden. Beachten Sie, dass dies nicht die Fokusmethode der zugrunde liegenden Elemente nicht aus.
Das heißt, Ihr Code wahrscheinlicher sein sollte: $ ( '# Input_field'). Get (0) .focus ()
Der Unterschied ist, dass Sie in meinem Beispiel zur Verwendung eigener Fokus Element des DOM-Element, während bei Ihnen Sie jQuery verwenden.
, die noch nicht nicht funktioniert, aber ist vielleicht ein Schritt in der richtigen Richtung.
Cheers,