J'ai rencontré un problème très difficile aujourd'hui. Lorsque je faisais une vérification des boîtes d'entrée, la logique métier de mon projet était que lorsque j'ai sélectionné une option spécifique d'un SELECT, une boîte d'entrée d'entrée a été affichée pour que l'utilisateur saisisse les choses. Cependant, si l'utilisateur n'a rien fait, une boîte d'avertissement doit apparaître pour que l'utilisateur puisse saisir. Après l'entrée, je masquerais l'entrée.
Par conséquent, le problème suivant se pose. Lorsque la boîte d'entrée d'entrée est affichée, l'objectif doit être automatiquement obtenu. Pour le moment, je l'utilise
La copie de code est la suivante:
document.getElementById ('id'). focus ();
Eh bien, je l'ai essayé et cela a très bien fonctionné. Je ne pouvais pas m'empêcher de me sentir heureux et je l'ai fait!
Mais les calculs ne sont pas aussi bons que les calculs humains. Quand je testais avec Firefox, c'était fini. Il était facile à utiliser lorsque j'ai affiché l'entrée pour la première fois, mais lorsque j'ai fermé la boîte de rappel d'alerte, l'entrée n'a pas pu obtenir le foyer.!
Le problème est délicat et je ne sais pas pourquoi. J'ai donc vérifié les réponses des maîtres sur Internet, trouvé l'astuce suivante, et essayé, et c'était vraiment utile!
Après alerte, l'original
La copie de code est la suivante:
document.getElementByIdx ('id'). focus ();
Passer à
La copie de code est la suivante:
window.setTimeout (function () {document.getElementById ('id'). focus ();}, 0);
Bon, problème résolu!
SetTimeout fait référence à l'exécution de l'expression précédente après avoir retardé le temps spécifié après le chargement. Bien sûr, ici, c'est l'exécution de la fonction après avoir retardé 0 ms.
Quand je viens de résoudre ce problème, je ne sais toujours pas pourquoi il peut être résolu sous Firefox. Si un grand Dieu le sait, je laisserai un message pour laisser les défunts étudiants l'apprendre, je suis très reconnaissant!