11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je souhaire faire un formulaire dans lequel j'ai 2 questions. Si l'internaute ne répond à aucune ou une seule question, le bouton de validation contient le texte suivant : "Compléter le formulaire ultérieurement". Si l'internaute répond aux deux questions, alors celui-ci devient "Valider le questionnaire".

J'ai fait ce bout de code mais celui-ci ne fonctionne pas.

Auriez-vous une idée de mon (mes) erreur(s)?

Merci d'avance pour votre aide, Rémy

<script type="text/javascript">
function bv
{
   if ((document.form.A1.checked)&&(document.form.A2.checked)) {
      document.getElementById("bouton1").style.display=('block':'none');
      document.getElementById("bouton2").style.display=('none':'block');
   }
}
</script>

<form method="post" name="form" action="envoyer.php">

<div>Question 1</div>
<div><ul>
<li><input type=radio name=q1 value=1 onclick="bv">oui</li>
<li><input type=radio name=q1 value=0 onclick="bv">non</li>
</ul></div>

<div>Question 2</div>
<div><ul>
<li><input type=radio name=q2 value=1 onclick="bv">oui</li>
<li><input type=radio name=q2 value=0 onclick="bv">non</li>
</ul></div>

<div id="bouton1" style="display:block"><input type=submit value="Compléter le formulaire ultérieurement"></div>
<div id="bouton2" style="display:none"><input type=submit value="Valider le questionnaire"></div>

</form>

Modifié par remy498 (20 Jul 2007 - 12:03)
Bonjour,

Aucun élément dans ton formulaire ne porte l'identifiant A1 ni A2 . Je pense que tu voulais mettre q1 et q2 . Il faudrait alors que dans tes balises input les id soient utilisés et non pas l'attribut name

De plus les input de ton formulaire doivent être déclarés comme suit :
<input type="radio" id="q1" value="1" onclick="bv();" />


edit: mais si tu mets deux fois le meme id dans la meme page ca risque de poser problème en fait :s
Modifié par rafale29 (20 Jul 2007 - 11:18)
Bonjour,

De plus pour verifier que tout est selectionner

if((document.form.A1.checked)&&(document.form.A2.checked))


Ne suffit pas car il faut preciser le bouton selectionner donc dans ton cas ca sera plustot du style


if (((document.form.q1[0].checked)||(document.form.q1[1].checked))&&((document.form.q2[0].checked)||(document.form.q2[1].checked))) 


Truc a rallonge oO donc si quelqu'un a une autre solution lol

edit pour rafale:

Non faut qu'il laisse le q1 en name car le javascript le prend avec le name. Par contre tu pourrais mettre des " " dans tes balises.
Modifié par Halindel (20 Jul 2007 - 11:22)
Merci à vous deux ça marche nickel.

Voici le code modifié :

<script type="text/javascript">
function bv(){
   if (((document.form.q1[0].checked)||(document.form.q1[1].checked))&&((document.form.q2[0].checked)||(document.form.q2[1].checked))) {
      document.getElementById("bouton1").style.display=("none");
      document.getElementById("bouton2").style.display=("block");
   }
}
</script>
<form method="post" name="form" action="envoyer.php">

<div>Question 1</div>
<div><ul>
<li><input type=radio name=q1 value=1 onclick="bv();">oui</li>
<li><input type=radio name=q1 value=0 onclick="bv();">non</li>
</ul></div>

<div>Question 2</div>
<div><ul>
<li><input type=radio name=q2 value=1 onclick="bv();">oui</li>
<li><input type=radio name=q2 value=0 onclick="bv();">non</li>
</ul></div>

<div id="bouton1" style="display:block"><input type=submit value="Completer le questionnaire ci dessus"></div>
<div id="bouton2" style="display:none"><input type=submit value="Valider le questionnaire"></div></form>