Comment définir automatiquement le focus sur une zone de texte lors du chargement d'une page Web?
Y a-t-il une balise HTML pour le faire ou faut-il le faire via Javascript?
javascript
html
Mark Biek
la source
la source
Réponses:
Si vous utilisez jquery:
ou prototype:
ou javascript simple:
mais gardez à l'esprit que cela remplacera les autres gestionnaires de charge, alors recherchez addLoadEvent () dans Google pour un moyen sûr d'ajouter des gestionnaires de chargement plutôt que de les remplacer.
la source
En HTML, il existe un
autofocus
attribut pour tous les champs de formulaire. Il y a un bon tutoriel à ce sujet dans Dive Into HTML 5 . Malheureusement, il n'est actuellement pas pris en charge par les versions IE inférieures à 10.Pour utiliser l'attribut HTML 5 et revenir à une option JS:
Aucun gestionnaire jQuery, onload ou événement n'est requis, car le JS se trouve sous l'élément HTML.
Edit: un autre avantage est qu'il fonctionne avec JavaScript désactivé dans certains navigateurs et vous pouvez supprimer le JavaScript lorsque vous ne souhaitez pas prendre en charge les navigateurs plus anciens.
Edit 2: Firefox 4 prend désormais en charge l'
autofocus
attribut, laissant simplement IE sans support.la source
autofocus="aufofocus"
? Tous les liens que vous avez fournies disent juste pour ajouter l'attribut:autofocus
.attribute="value"
pour les attributs booléens. HTML5 est venu avec la "syntaxe d'attribut vide" et nous avons abandonné la redondance. Maintenant, nous pouvons le faire<input checked disabled autofocus data-something>
Vous devez utiliser javascript:
@Ben note que vous ne devez pas ajouter de gestionnaires d'événements comme celui-ci. Bien que ce soit une autre question, il vous recommande d'utiliser cette fonction:
Ensuite, appelez addLoadEvent sur votre page et référencez une fonction qui définit le focus sur la zone de texte souhaitée.
la source
Écrivez simplement l'autofocus dans le champ de texte. C'est simple et cela fonctionne comme ceci:
J'espère que cela t'aides.
la source
Vous pouvez le faire facilement en utilisant jquery de cette manière:
en appelant cette fonction dans
$(document).ready()
.Cela signifie que cette fonction s'exécutera lorsque le DOM sera prêt.
Pour plus d'informations sur la fonction READY, consultez: http://api.jquery.com/ready/
la source
Utilisation du html et du javascript vanille ordinaire
Pour ceux qui utilisent le framework .net et asp.net 2.0 ou supérieur, c'est trivial. Si vous utilisez des versions plus anciennes du framework, vous devrez écrire du javascript similaire à ci-dessus.
Dans votre gestionnaire OnLoad (généralement page_load si vous utilisez le modèle de page stock fourni avec Visual Studio), vous pouvez utiliser:
C #
VB.NET
(* Notez que j'ai supprimé le caractère de soulignement du nom de la fonction qui est généralement Page Load, car dans un bloc de code, il a refusé de s'afficher correctement! Je ne pouvais pas voir dans la documentation de balisage comment obtenir des traits de soulignement pour rendre sans échappement.)
J'espère que cela t'aides.
la source
À mon humble avis, le moyen le plus `` propre '' de sélectionner le premier champ de texte visible et activé sur la page consiste à utiliser jQuery et à faire quelque chose comme ceci:
J'espère que cela pourra aider...
Merci...
la source
la source
En règle générale, je recommanderais de ne pas voler le focus de la barre d'adresse. ( Jeff en a déjà parlé. )
La page Web peut prendre un certain temps à se charger, ce qui signifie que votre changement de focus peut se produire longtemps après que l'utilisateur a tapé l'URL pae. Ensuite, il aurait pu changer d'avis et revenir à la saisie d'url pendant que vous chargerez votre page et volerez le focus pour la mettre dans votre zone de texte.
C'est la seule et unique raison qui m'a poussé à supprimer Google comme page de démarrage.
Bien sûr, si vous contrôlez le réseau (réseau local) ou si le changement d'orientation est de résoudre un problème d'utilisation important, oubliez tout ce que je viens de dire :)
la source
J'ai eu un problème légèrement différent. Je voulais
autofocus
, mais je voulais que leplaceholder
texte reste, cross-browser. Certains navigateurs masqueraient leplaceholder
texte dès que le champ était focalisé, d'autres le garderaient. J'ai dû soit faire en sorte que les espaces réservés restent inter-navigateurs, ce qui a des effets secondaires étranges, ou arrêter d'utiliserautofocus
.J'ai donc écouté la première clé tapée contre la balise body et redirigé cette clé dans le champ de saisie cible. Ensuite, tous les gestionnaires d'événements impliqués sont tués pour garder les choses propres.
https://jsfiddle.net/b9chris/qLrrb93w/
la source
Il est possible de définir
autofocus
sur les éléments d'entréela source
Si vous utilisez ASP.NET, vous pouvez utiliser
dans le code sur le serveur, ce qui ajoutera le JavaScript approprié dans la page.
D'autres frameworks côté serveur peuvent avoir une méthode équivalente.
la source
Utilisez le code ci-dessous. Pour moi ça marche
la source