5568 sujets

Sémantique web et HTML

Bonjour,

Désolé si je n'ai pas trouvé réponse à mon pb sur le forum...
Voici mon petit problème :

J'ai un formulaire (cf. code ci-dessous) valide en XHTML 1.0Strict, quand je lui rajoute un champ input avec un type"hidden" il n'est plus valide...! plus intéressant encore, il redevient valide si je laisse ledit champ à l'intérieur d'un fieldset...!
Le code invalide ci-dessous :

   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
    <head>
      <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
      <title>Source html Element</title>

      
  </head>
   <body>
   <?php $album_id="1"; ?>
   <form action="<?php echo $_SERVER['PHP_SELF'] ;?>?album_id=<?php echo $album_id;?>" enctype="multipart/form-data" id="new_mp3" method="post">
<!--<input type="hidden" name= value="<?php echo $album_id ; ?>" />-->
     <fieldset>
       <legend>Mon formulaire</legend>
       <label for="t1">Truc 1:</label>
       <input type="text" name="nom" id="t1" />
       <br />
       <label for="t2">Truc 2:</label>
       <input type="text" name="t2" id="t2" />
       <br />
       <label for="t3">Truc 3:</label>
       <input type="text" name="adresse" id="t3" />
	   
     </fieldset>
	<input type="hidden" name="song_album_id" />
   </form>
  
   </body>
   </html>




Re...

J'ai résolu mon problème 'artificiellement' en incluant la balise <input type="hidden"... /> dans une div... C'est pas génial, pas logique, mais ..ça valide, lol
merci de m'avoir lu....!
Cdt, JM

Modifié par JMB (20 May 2009 - 09:56)
Effectivement, et le message d'erreur donné par le validateur est assez clair :
a écrit :
Line 49, Column 45: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag


L'élément input ne peut pas se trouver directement dans l'élément form, il doit être dans un des tag listé ci-dessus.
Bonjour et merci pour ta réponse rapide.
J'avoue ne pas comprendre :
1 - input est bien une balise utilisée dan sles formulaire, quel que soit le DTD
2 - d'autres balise input sont évidement présenets dan sle formulaire et ne posent pas de pb ...
NB : je sais bien ce me renvoit le validator et c'est pour cela que je ne comprend pas...
Merci
petit complément : comme je le disais dan smon premier post , l'ensemble des autres balises <input sont valides, qu'elles soient hors ou dan sun fieldset... c'est juste ma balise <input type="hidden" qui pose pb, semble t il ....
JMB a écrit :
J'ai résolu mon problème 'artificiellement' en incluant la balise <input type="hidden"... /> dans une div... C'est pas génial, pas logique, mais ..ça valide, lol

Tu as mal compris l'intervention de Laurie-Anne. Aussi troublant que cela puisse paraître, l'élément input ne peut être enfant direct de form, ce dernier n'acceptant que des enfants directs de type block. Il te faut donc au minimum englober ton input dans un paragraphe, voire un div tel que tu sembles l'avoir fait.
Oui...
Merci Benjamin et désolé à Laurie Anne si je l'ai froissée...
C'est le comportement de la balise input qui m'a chiffonné lol, ce n''est pas logique en effet, d'autant qu'un input s'utilise en général dans le cadre de formulaire (pour qu'on puisse traioter l'input autrement qu'en JS, justeùent...
Bref,...
Merci à ts les 2 pour VOTRE INPUT !!! Smiley cligne