Legen Sie programmgesteuert den Fokus von input-box von ListView ItemInvoked Ereignis [Windows 8 Metro-HTML5]
Edit:Wenn Sie nicht entwickelt, die auf Windows 8, versuchen Sie nicht, um diese Frage zu beantworten. Nicht abstimmen. Gar nicht, es zu Lesen. Dies ist nicht eine web-app oder-website und nicht in einem browser laufen. Bitte stop-down-Abstimmung die Inhalte, die Sie nicht verstehen. Dies ist eine Windows 8 METRO-HTML5/js-Anwendung, die läuft in der Windows-Runtime-Umgebung.
Ursprünglichen Frage:
Ich möchte den cursor auf "blinkend" in das Eingabefeld ein, bereit zum empfangen von Eingabe. Ich bin mit javascript-Fokus zu setzen. Funktioniert das nicht:
document.querySelector("#input-box").focus();
Wer weiß, warum? Ist die Fokus-Methode nicht die richtige ist, für dieses zu verwenden?
Danke.
Edit #2: Also es hat definitiv etwas mit der Tatsache zu tun, dass ich versuche, den Fokus auf das input aus einer ListView "itemInvoked" Ereignis. Das Ereignis wird ausgelöst, richtig, das element ist zugänglich aus der event-handler, und die Linie hat keine Fehler bei der Ausführung. Kann ich setzen, um meine input-tag vom standard-Schaltfläche click-Ereignis, aber nicht aus einem ItemInvoked Veranstaltung. Die Frage ist also, warum kann ich mich nicht konzentrieren, aus dieser event-handler?
InformationsquelleAutor der Frage JT703 | 2012-05-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellt habe ich dieses kleine test-Projekt nur mit einer textbox und in der onload-setzen Sie den Fokus auf genau die gleiche Weise wie Sie tun. Ich habe versucht, es sowohl auf dem emulator und auf meinem lokalen Rechner und beide Methoden zu funktionieren scheint.
Könntest du versuchen, wenn dieses Projekt für Sie arbeiten an Ihrer Maschine? Und können Sie uns etwas mehr Einblick, wenn Sie versuchen, legen Sie den Fokus? Jetzt in Ihrer Frage, es gibt nicht viel Informationen darüber, Wann es passiert.
Herunterladen können Sie das sample über hier http://www.playingwith.net/Temp/TestFocusApplication.zip
Update
Okay, die scheinen zu finden es, wenn Sie rufen Sie die msSetImmediate Funktion mit der Funktion, die setzt den Fokus auf die textbox scheint es zu funktionieren. Ich habe keine option zum hochladen der test-Beispiel, so wird im folgenden finden Sie den code, wo befestige ich die ItemInvoked-handler und rufen Sie die setFocus-Funktion.
InformationsquelleAutor der Antwort ChristiaanV
Welche bauen, sind Sie auf ? consumer preview oder anderen dev-previews ? Ich bin auf DP6 (für MS-Partner) und die JS standard-Sachen funktioniert.
In meinem default.html ich habe:
Und dann in meine default.js in der app-gestartet-geladen Textvorschlag-Funktion, die ich habe:
Der einzige Grund den ich mir denken kann, dass es nicht funktioniert ist, dass das element zugegriffen wird, bevor es bereit ist. Oder früheren build Fehler. Ich habe die Lösung, rar ' D : http://www.mediafire.com/?ghz49gtfxlgr7en wenn Sie möchten, um zu sehen.
InformationsquelleAutor der Antwort Orry S
Versuchen, mit nicht-jquery regelmäßigen javascript wie
document.getElementById( 'myElementsID' ).focus()
InformationsquelleAutor der Antwort Steve Binder
Versuchen diese um zu sehen, ob es hilft:
InformationsquelleAutor der Antwort BenM
Obwohl die Frage schon sehr alt ist. Aber ich kämpfte, um die Lösung zu finden.
Erste Sache .focus() keinen Wert zurückliefern soll es nur setzen Sie den Fokus und undefined zurückgegeben wird.
Auch, wenn wir den Fokus auf ein element stellen Sie sicher, dass element hat tabindex vorhanden, sonst würde es nicht den Fokus (vor allem in chrome).
Die folgende Abfrage verwendet werden:
InformationsquelleAutor der Antwort Firdous Ahmad