Ich habe heute auf ein sehr schwieriges Problem gestoßen. Als ich eine Überprüfung der Eingabefelds durchführte, war die Geschäftslogik meines Projekts, dass als ich eine bestimmte Option eines SELECT ausgewählt habe, ein Eingabefeld angezeigt wurde, damit der Benutzer Dinge eingibt. Wenn der Benutzer jedoch nichts getan hat, muss ein Warnbox für den Benutzer auftauchen. Nach der Eingabe habe ich die Eingabe verbergen.
Daher tritt das folgende Problem auf. Wenn das Eingangs -Eingangsfeld angezeigt wird, muss der Fokus automatisch erhalten werden. Zu diesem Zeitpunkt benutze ich es
Die Codekopie lautet wie folgt:
document.getElementById ('id'). focus ();
Nun, ich habe es versucht und es hat sehr gut funktioniert. Ich konnte nicht anders, als mich glücklich zu fühlen und ich habe es geschafft!
Die Berechnungen sind jedoch nicht so gut wie menschliche Berechnungen. Als ich mit Firefox testete, war es vorbei. Es war einfach zu bedienen, als ich den Eingang zum ersten Mal ansah, aber als ich das Alarm -Erinnerungsbox schloss, konnte der Eingang den Fokus nicht bekommen.!
Das Problem ist schwierig und ich weiß nicht warum. Also habe ich die Antworten der Meister im Internet überprüft, den folgenden Trick gefunden und es ausprobiert, und es war wirklich nützlich!
Nach der Warnung das Original
Die Codekopie lautet wie folgt:
document.getElementByIdX ('id'). Focus ();
Wechseln zu
Die Codekopie lautet wie folgt:
window.settimeout (function () {document.getElementById ('id'). focus ();}, 0);
Gut, Problem gelöst!
SetTimeout bezieht sich auf die Ausführung des vorherigen Ausdrucks nach Verzögerung der angegebenen Zeit nach dem Laden. Hier ist es hier natürlich die Ausführung der Funktion nach Verzögerung von 0 ms.
Wenn ich dieses Problem nur gelöst habe, weiß ich immer noch nicht, warum es unter Firefox gelöst werden kann. Wenn irgendein großer Gott weiß, werde ich eine Botschaft überlassen, damit die verstorbenen Schüler es lernen lassen, ich bin sehr dankbar!