Page 1 sur 1

Problème de validation avec Javascript

Publié : 02 janv. 2007, 22:38
par EmmaZL
Bonjour et bonne année ! :wink:

J'ai ce code javascript dans une de mes pages ( http://www.barf.ch/eleveurs.htm ) :

Code : Tout sélectionner

function PrintCombo() {
	var Z="<SELECT name='acces' size=1> ";
	Z+="<OPTION value='-1'>"+this.titre+"</OPTION>";
	for (var i=0;i<this.nb;i++) {
		Z+="<OPTION value="+i+">"+this[i].libelle+"</OPTION>";
	}
	Z+="</SELECT>";
	for (var i=0;i<this.nbBouton;i++) {
		Z+="&nbsp;<br><br><INPUT Type='button' value='"+this.bouton[i]+"' onclick='GoAcces(this.form,"+i+")'>&nbsp;";
	}
	document.write(Z);
}
La validateur du W3C ne l'accepte pas à cause des balises <option> et <select>

J'ai 3 erreurs en tout :

2 fois : end tag for element "OPTION" which is not open.
1 fois : end tag for element "SELECT" which is not open.

Y a-t-il un moyen de valider la page quand même ? Image

Merci d'avance.

Emma.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8

Publié : 02 janv. 2007, 23:39
par Benoit
Alors oui il y a moyen, c'est en faisant comme dans les autres balises script de la page, ajouter

Code : Tout sélectionner

//<!--
au début et

Code : Tout sélectionner

//-->
à la fin du bloc de script, ce qui rendra le script invisible à l'analyseur HTML qui ne verra plus qu'un commentaire.

Cependant je ne vois pas vraiment de raison d'utiliser du JavaScript ici, pourquoi ne pas mettre directement le contenu du select ?

Voici le code HTML généré selon Firebug, qui est à mon avis nettement plus simple et lisible que cette fonction :

Code : Tout sélectionner

<select size="1" name="acces">
 <option value="-1">Choisir un pays</option>
 <option value="0">Suisse</option>
 <option value="1">France</option>
 <option value="2">Belgique</option>
 <option value="3">Canada</option>
</select>
Je crois que beaucoup de choses pourraient être améliorées dans cette page, comme la présence de trois tableaux imbriqués, mais se débarrasser du document.write, ce qui n'est pas propre du tout, serait un bon premier pas :)

Publié : 03 janv. 2007, 23:46
par EmmaZL
Merci benoît pour les conseils... :wink:

J'ai essayé de faire ce que tu as dit, mais la page n'est toujours pas valide. :cry:

Je vais essayer d'enlever les tableaux... et mettre des div à la place.

PS : c'est quoi Firebug ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9

Publié : 04 janv. 2007, 09:18
par calimo
Firebug c'est une extension pour Firefox. À avoir absolument si tu fais du javascript.
Je suis d'accord avec Benoit, du javascript pour faire des document.write, c'est rarement utile, et dans ce cas un codage en HTML serait à la fois plus lisible (pour toi) et plus accessible. Le javascript n'apporte rien.

Attention également à l'attribut language de script qui n'est pas autorisé je crois.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9