XHTML1 Strict - autofocus signalé en erreur par W3C

Résolu
metalcat Messages postés 77 Statut Membre -  
 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

  1. dugenou Messages postés 6262 Statut Contributeur 1 455
     
    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
  2. metalcat
     
    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
  3. 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 ?
    0
    1. dugenou Messages postés 6262 Statut Contributeur 1 455
       
      Personnellement, je place le JavaScript après la balise de fermeture </form>, je ne sais pas si l'erreur vient de là.
      0
  4. metalcat
     
    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