Comment valider un formulaire en XHTML 1 Strict ?
… pas très logique, mais efficace !
Je me suis cassé le nez une heure aujourd’hui sur la validations d’un bête formulaire en XHTML 1.0 Strict :[ …
W3C me renvoyait dans mes basques, en me disant qu’il est incorrect d’inclure une balise « input » ou une balise « select » DANS une balise « form ».
C’est pourtant la syntaxe logique :
- form est une balise de type « block » (elle entraine un retour à la ligne apres fermeture)
- input et select sont des balises de type « inline » (on peut en aligner plusieurs sur la meme ligne)
- et si on ne peut mettre une balise de type « block » DANS une balise de type « inline », l’inverse ne pose pas de probleme.
Donc, donc… pas très logique, tout ça.
La solution consiste à mettre le contenu de la balise form… dans un calque.
C’est tout simple, comme l’oeuf de Christophe Colomb, et cela donne in fine :
<form method="post" action="" id="form1"> <div> <input type="text" id="montexte" name="montexte"> </div> </form>
Et pouf, le formulaire est validé sur le site du W3C, en XHTML Strict :))



C’est juste que les balises input et form ne peuvent pas avoir comme parent direct le body (si on ne compte pas la balise form)..
Donc tu pouvais les inclures dans un paragraphe ou dans une liste
mais naaan, pour valider ton form en 1.1 ou en 1.0 strict tu dois mettre des balises fieldset, et la ça va marcher :
<form … >
<fieldset>
ici tes input, select..etc.
</fieldset>
</form>