Maison > interface Web > js tutoriel > le corps du texte

Solution au problème selon lequel le focus de saisie ne peut pas être obtenu à plusieurs reprises sous les compétences Firefox_javascript

WBOY
Libérer: 2016-05-16 16:44:25
original
1163 Les gens l'ont consulté

J'ai rencontré un problème très difficile aujourd'hui. Lorsque je vérifiais une zone de saisie, la logique métier de mon projet était que lorsque je sélectionnais une option spécifique d'une sélection, je devais afficher une zone de saisie, mais si. l'utilisateur ne fait rien, une boîte d'avertissement doit apparaître pour que l'utilisateur puisse saisir. Après avoir saisi, je masquerai l'entrée ici.

Par conséquent, le problème suivant se pose. Lorsque la zone de saisie est affichée, elle doit automatiquement obtenir le focus. À ce stade, j'utilise

Copier. code Le code est le suivant :

document.getElementById('id').focus();

Eh bien, je je l'ai essayé et ça a fonctionné. Très bien, je n'ai pas pu m'empêcher d'être heureux, c'est fait !

Mais Dieu n'est pas aussi bon que l'homme. Lorsque je l'ai testé avec Firefox, c'était terminé lorsque l'entrée était affichée pour la première fois, mais ensuite lorsque j'ai fermé la boîte de rappel d'alerte. , L'entrée ne parvient pas à se concentrer, embarras !

Le problème est difficile et je n'en connais pas la raison, alors j'ai fait une petite recherche sur les solutions des experts sur Internet et j'ai trouvé l'astuce suivante, je l'ai essayée et ça a très bien fonctionné !

Après alerte, copiez l'original

document.getElementByIdx('id').focus();

Remplacer par
Copier le code Le code est le suivant :

window.setTimeout(function () { document.getElementById('id').focus();}, 0

Cool, problème résolu !

setTimeout signifie exécuter l'expression précédente après avoir retardé le temps spécifié après le chargement. Bien sûr, ici, la fonction est exécutée après un délai de 0 ms.

Bien que je viens de résoudre ce problème, je ne sais toujours pas pourquoi il peut être résolu dans Firefox. Si quelqu'un le sait, laissez-moi un message afin que je puisse en tirer des leçons, je lui en serais très reconnaissant !
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal