5568 sujets

Sémantique web et HTML

Bonsoir,
Depuis le début de l'après midi, je bloque sur un formulaire...je suis sûr que c'est une erreur bête, comme souvent, mais je ne vois vraiment pas.
Le code ci-dessous, demande le jour et le mois de naissance.

  <p><label><strong>Date de naissance :</strong><label>
  <select name="jours">
      <option>1 ...</option>
      <option>... 31</option>
  </select>
  <select name="mois">
      <option>Janvier</option>
      <option>Décembre</option>
  </select></p>

Lorsque je clique sur la liste déroulante des mois, le curseur revient automatiquement au jour (essayez en local, si vous avez le temps bien sûr, vous verrez, c'est vraiment étrange).
Je pense que cela vient des <label>, mais comment éviter cela tout en laissant le label ?

Merci d'avance. Smiley smile
Modifié par Gaylord.P (19 Apr 2005 - 22:09)
Je ferais ça plutot comme ça :


<form>
<div>
<label for="jour">Jours</label>
<select id="jour"></select>
<label for="mois">Mois</label>
<select id="mois"></select>
</div>
Merci de ta réponse, mais j'ai juste donné le code qui pose problème, bien entendu, les balises <form> sont présentes, mais je n'ai pas jugé utile de les mettres puisque je pense que le problème vient des <label>, mais je ne sais pas vraiment pourquoi. Smiley smile
En fait, c'est la structure de ton formulaire qui n'est pas bonne.

Bon, je commence par 2 remarques qui n'ont rien à voir avec le problème mais bon quand même ! (enfin une a totalement à voir en fait !)

donc celle qui n'a rien à voir : <strong> dans le <label>... pourquoi ?? !
A mon avis, ça n'a rien à faire là Smiley cligne
2eme remarque, il manque l'élément le plus important du <label>, son attribut for="" !!!

tu dois associer for="" à id="" dans le input ou le select ou le textarea ou ...
Et ensuite, tu ne pourras pas gérer tes 3 select avec un seul <label> Smiley cligne

Donc, au final ça donnera ceci :


<label for="jour">Jour</label>
<select id="jour">
<option>...</option>
</select>
<label for="mois">Mois</label>
<select id="mois">
....
</select>
<label for="annee">Année</label>
<select id="annee">
.....
</select>


Ensuite, actuellement, tu utilises <label> comme un <legend> en fait, donc au final ça donnera :

<fieldset>
<legend>Date de naissance</legend>
<label for="jour">Jour</label>
<select id="jour">
<option>...</option>
</select>
<label for="mois">Mois</label>
<select id="mois">
....
</select>
<label for="annee">Année</label>
<select id="annee">
.....
</select>
</fieldset>

Donc c'est ce que te donnais TriadPtale en gros, mais avec un plus au niveau du <legend> pour reproduire ce que tu semblais vouloir !
Ah d'accord.
Moi je pensais qu'un label servait à définir un formulaire, ici par exemple, comme je voulais mettre 3 formulaires (jours, mois, annee) pour une seule information (date de naissance), je pensais qu'il fallait mettre les trois formulaires dans un seul <label>.

Pour le strong, en faîte, j'ai plusieurs formulaires, les champs obligatoires sont en gras parce qu'ils sont important, c'est donc <strong> qu'il faut mettre pour faire resortir les éléments importants, non ?
J'ai pensé à mettre des .class pour mettre en gras certaines informations et d'autres non, mais comme ce sont des champs importants, je pensais que la balise <strong> était plus appropriée.


Merci beaucoup pour votre aide si rapide. Smiley smile
Gaylord.P a écrit :
Pour le strong, en faîte, j'ai plusieurs formulaires, les champs obligatoires sont en gras parce qu'ils sont important, c'est donc <strong> qu'il faut mettre pour faire resortir les éléments importants, non ?
Hmm si c'est important ... alors pourquoi pas Smiley murf

Sinon, comme je pensais, en fait tu confondais <label> et <legend> Smiley cligne
Modifié par Olivier (19 Apr 2005 - 22:11)
Oui, c'est certainement ça, je vais revoir quelques cours par ci par la pour m'améliorer Smiley smile
En tout cas, merci à vous deux pour m'avoir répondu aussi rapidement. Smiley biggrin