8
votes

Comment faire une autofocasse sur le terrain?

J'ai besoin que ce champ soit concentré lorsque l'utilisateur ouvre la page. Je ne sais pas si cela change quelque chose mais c'est à l'intérieur d'une fenêtre modale que je charge à partir d'un fichier PHP.

Y a-t-il un moyen facile de le faire?


0 commentaires

3 Réponses :


15
votes

Utilisation JavaScript, vous pouvez y parvenir:

document.onload = function() {  
  document.getElementById("question-box-0").focus();
}


3 commentaires

Je ne pouvais pas le faire fonctionner aussi, c'est une fenêtre modale qui se charge d'un fichier PHP. Peut-il avoir quelque chose à faire? J'ai ajouté le script juste au-dessus du formulaire et cela n'a pas fonctionné. Merci


Vous devrez ajouter ce script à exister dans la balise du fichier. Le formulaire est activé. Entourez-le dans Tags.


JS chargé d'Ajax ou de cadres similaires ne fonctionnera pas. Pour exécuter des fonctions JS, elles doivent être chargées dans comme @Michaelirigoyen indiqué



2
votes
<html>
<head>
<script>
document.onload = function() {
 document.getElementById('question-box-0').focus();
};
</script>
</head>
<body>
...
</body>
</html>

2 commentaires

Cela n'a pas fonctionné, c'est une fenêtre modale qui se charge d'un fichier PHP. Peut-il avoir quelque chose à faire? J'ai ajouté le script juste au-dessus du formulaire et cela n'a pas fonctionné. Merci


Essayez de définir le script dans la balise comme mon exemple de spectacle. Ceci afin de s'assurer que le gestionnaire d'événements de téléchargement de fichier est défini avant que l'événement se produise réellement.



7
votes

Les autofocuseurs JavaScript (comme indiqué dans les autres réponses ici) fonctionneront mais peuvent être ennuyeux pour certains utilisateurs. Par exemple, si vous concentrez un champ différent pendant que une page est toujours en cours de chargement, le JavaScript peut «vous aider» en déplaçant la mise au point et en vous faisant taper dans le mauvais champ. Cette question sur ux.stackexchange.com énumère des plus d'inconvénients.

Pour empêcher cela, HTML5 a introduit un Autofocus Attribut pour des éléments de formulaire qui signifie que le comportement sera constamment mis en œuvre par le navigateur lui-même et peut être désactivé pour les utilisateurs qui le trouvent irritants. Bien sûr, cela n'est pas encore pris en charge par tous les navigateurs. Pour plus d'informations, voir la section sur champs autofocus dans Mark Pilgrim's excellent Dive dans HTML5 Book.


2 commentaires

@Dancrumb Yep, il suffit d'ajouter un lien vers question associée sur ui.stackexchange.com qui a plus de discussion


Merci j'ai ajouté "Autofocus" et je vais plus tard tout lire pour que cela fonctionne sur tous les navigateurs. Merci