XHTML1 Strict - autofocus signalé en erreur par W3C [Résolu/Fermé]

Signaler
Messages postés
71
Date d'inscription
dimanche 23 novembre 2003
Statut
Membre
Dernière intervention
28 septembre 2017
-
 metalcat -
Bonjour,
Je veux que le 1er champ de mon formulaire ait le focus au chargement de la page. Cela fonctionne avec autofocus="autofocus" ou avec autofocus seul mais le validateur W3C signale une erreur dans les 2 cas.
Message : "le type de document de supporte pas cet attribut pour cet élément ...".
Le type de document est XHTML1 Strict avec du traitement en PHP.

extrait de mon code :

<input type="text" name="get_pseudo_adr" autofocus="autofocus" size="25" maxlength="25" id="pseudo" value="<?php if(isset($_POST['get_pseudo_adr'])) { echo htmlentities($_POST['get_pseudo_adr']);}?>"
class="<?php if($pseudo_adr_color==1){echo 'color_red';}
elseif (isset($_POST['get_pseudo_adr'])) {echo htmlentities($_POST["get_pseudo_adr"]!="")?'':'border_red'; }?>" /><br />


Connaissez-vous la façon de donner le focus à un champ dans un document de type XHTML1 Strict ?

La page est un fichier avec l'extension .PHP bien entendu.

ça fait des heures que je cherche une solution sur le net en vain.

Merci d'avance.




4 réponses

Messages postés
5878
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
11 août 2020
1 262
Bonjour,

Je n'utilise pas autofocus dans mes formulaires, mais du JavaScript :

<script type="text/javascript">document.nom-du-formulaire.nom-du-champ.focus();</script>


Par curiosité j'ai cherché comment utiliser l'attribut autofocus, voici ce que j'ai trouvé chez OpenClassrooms :

<input type="text" name="get_pseudo_adr" id="pseudo" autofocus />

Courage, le bout du tunnel n'est pas loin, il suffit de se retourner.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 58241 internautes nous ont dit merci ce mois-ci

Bonjour dugenou,
Merci pour ta réponse rapide.
Comme je m'y attendais, la solution de OpenClassrooms me donne le message suivant par W3C validator :

Line 55, Column 28: "autofocus" is not a member of a group specified for any attribute

Je vais adopter ta solution en javascript.

Un grand merci.

metalcat
Ben non ça ne marche pas avec javascript. Je n'ai pas le focus et W3c me donne le message :
" Line 54, Column 12: there is no attribute "name"

<form name="formulaire_identification" action="http://metalcat.legtux.org/membr…

extrait de mon code :

<div class="formulaire">

<script type="text/javascript">document.formulaire_identification.get_pseudo_adr.focus();</script>

<span style="font-weight:bold; padding-left:11px;">Contrôle accès - Identification</span>

<form name="formulaire_identification" action="http://metalcat.legtux.org/membre_identification.php?adresse_url=<?php echo $_GET['adresse_url'];?>&background=<?php echo $_GET['background'];?>" method="post">
<fieldset style="border:0; padding-left:12px;">
<label for="pseudo">Pseudonyme ou <br />adresse de messagerie</label>
<input type="text" name="get_pseudo_adr" size="25" maxlength="25" id="pseudo" value="<?php if(isset($_POST['get_pseudo_adr'])) { echo htmlentities($_POST['get_pseudo_adr']);}?>"
class="<?php if($pseudo_adr_color==1){echo 'color_red';}
elseif (isset($_POST['get_pseudo_adr'])) {echo htmlentities($_POST["get_pseudo_adr"]!="")?'':'border_red'; }?>" /><br />


Une idée ?
Messages postés
5878
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
11 août 2020
1 262
Personnellement, je place le JavaScript après la balise de fermeture </form>, je ne sais pas si l'erreur vient de là.
Le W3C validator rejette l'attribut name.
message : "there is no attribute "name". Alors qu'il est présent. Bizarre.

Mais j'ai trouvé sur le net ceci qui fonctionne :
<script type="text/javascript">
function loadFocus()
{document.getElementById('pseudo').focus();}
window.onload = loadFocus;
</script>

Placé après </form>

Merci quand même. J'espère que ça va aider.

metalcat