XHTML1 Strict - autofocus signalé en erreur par W3C

Résolu/Fermé
metalcat
Messages postés
74
Date d'inscription
dimanche 23 novembre 2003
Statut
Membre
Dernière intervention
27 septembre 2021
- 15 janv. 2017 à 00:35
 metalcat - 16 janv. 2017 à 13:22
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

dugenou
Messages postés
6083
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 454
Modifié par dugenou le 15/01/2017 à 08:53
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
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
0
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 ?
0
dugenou
Messages postés
6083
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 454
15 janv. 2017 à 14:47
Personnellement, je place le JavaScript après la balise de fermeture </form>, je ne sais pas si l'erreur vient de là.
0
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
0