Forum de discussion
Forum « Programmation Javascript » (archives)
Re: Je fais du progrès... en tk j'epère
Envoyé: 8 février 2004, 9h55 par Oznog
On est toujours le con de quelqu'un, surtout en programmation alors faut pas s'en faire ;-)
Avant tout ATTENTION au sujet "Je fais du progrès... en tk j'epère" à banir!
Bon, le déboggage c'est un art, mais dans ton cas, il y a tellement d'erreurs que c'est plus simple de partir à zéro. Alors ATTENTION aux erreurs suivantes.
1. TOUJOURS bien former le document avec des manipulations de formulaire. Mettre les balises HTML, HEAD, BODY et particulièrement <form>! Avec son nom bien sûr <form name="commentaires"...
2. ATTENTION de bien prendre le temps de nommer de façon significative tes objets, fonctions, variables etc. Tu as par exemple une fonction "commentaires" et un formulaire "commentaires". C'est d'ailleurs l'erreur principale de ton code, celle qui affiche "erreur de syntaxe". Renomme ta fonction quelque chose comme "AfficheCalque".
3. Un test de condition doit être entièrement entre parenthèse (en Javascript) :
// PAS BON
if (commentaires.Courriel.checked) == true
// BON
if (commentaires.Courriel.checked == true)
// Note que c'est la même chose que
if (commentaires.Courriel.checked)
4. Pendant qu'on y est, le ciblage doit être comme :
// Pas bon
commentaires.Courriel.checked
// Bon
document.forms.commentaires.Courriel.checked
C'est déjà ça. Maintenant, prend l'habitudede réutiliser ce qui fonctionne déjà. Par exemple dans le tutoriel DHTML j'ai fais une fonction, il me semble t'en avoir parlé. La voilà :
<script language="javascript">
var ns4=document.layers
var ie4=document.all
var ns6=document.getElementById&&!document.all
function twAffiche_Cache(nObjet) {
if(ie4) { // Internet explorer
eval(nObjet).style.visibility =
(eval(nObjet).style.visibility=='visible'?'hidden':'visible');
}
else if(ns4) { // Netscape 4.x
document.eval(nObjet).visibility =
(document.eval(nObjet).visibility=='show'?'hidden':'show');
}
else if(ns6) { // Netscape 6 (mozilla)
var divns6 = document.getElementsByTagName("div")
divns6[nObjet].style.visibility =
(divns6[nObjet].style.visibility=='visible'?'hidden':'visible');
}
}
</script>
Tu n'a pas besoin d'autre chose! Elle affiche un calque invisible et l'efface quand il est visible.
Il suffit donc de passer le bon nom de calque! Mais tu le sais déjà (bien que je ne sache à quoi ça peut bien servir)
<input type="checkbox" name="Courriel" onclick="twAffiche_Cache(this.value)" value="courriel"> Courriel
<input type="checkbox" onclick="twAffiche_Cache(this.value)" name="Telephone" value="tel"> Téléphone
<input type="checkbox" onclick="twAffiche_Cache(this.value)" name="Telecopieur" value="telecopieur"> Télécopieur
<input type="checkbox" name="Aucune" value="aucune"> Aucune réponse requise <br>
"this.value" passerra la valeur de la propriété "value". On a pas besoin de plus.
Ciao
Oznog
Réponses
|