Bonjour,
Je travaille sur un nouveau formulaire :
les 2 premières questions "oui/non" sont décisives pour continuer ou non le questionnaire :
Si la réponse est "non" pour les 2 premières questions alors c'est terminé et la personne clique sur le bouton envoyé
Si une des réponse est "Oui" alors une div apparait sous la 2ème et une 3ème question apparaitet la personne clique à la fin sur le bouton envoyé. dans cette 3ème question oui/non, si la personne coche "oui" alors encore une autre div apparait avec d'autres questions.
Jusque là tout fonctionne bien.
Toutes les questions sont obligatoires dès lors qu'une div avec d'autres questions est activée.
Lorsque que l'on clique sur "envoyer", j'ai créé une procédure en javascript qui vérifie que les questions obligatoires ont bien été renseignées.
Cela fonctionne bien avec les 2 premières questions et la première étape de la question 3 (juste le premier oui/non), mais après il ne vérifie plus rien et me renvoie sur ma page de conclusion directement pour les sous questions de la question 3.
J'ai mis une condition de vérification qui fonctionne bien aussi : si la div de la question 3 est affichée, alors il y a vérification ; sinon envoi du questionnaire (si les 2 premières ont bien été renseignées)
Bref, voici la hiérarchie et la numérotation des réponses :
1/
Q0001[0] => Oui
Q0002[0]
Q0002[1]
Q0002[2]
Q0002[3]
Q0002[4]
Q0003 - non obligatoire
Q0001[1] => Non
2 /
Q0004[0] =>Oui
Q0004[0]
Q0004[1]
Q0002[2]
Q0004[3]
Q0004[4]
Q0005 - non obligatoire
Q0004[1] => Non
=> si une des réponses est "oui" alors div affichée :
3/ Q0006[0] => Oui
3.1 / Q0007[0] =>Oui
Q0007[1] => Non
Q0008 - non obligatoire
3.2 / Q0009[0] => Oui
Q0009[1] => Non
Q0010 - non obligatoire
Q0006[1] =>Non
=> je ne vais pas toutes les faire mais c'est pour que vous compreniez mon code après :
Pour la question 1 et 2 => pas de soucis ; mes conditions fonctionnent.
Si la div question 3 est activée et que je ne réponds ni Q0006[0] ni Q0006[1], je clique sur le bouton "envoi" => j'obtiens bien le message d'alerte
Par contre, si je coche la Q0006[0] et pas la suite , le questionnaire se valide quand même.
Voilà mon code :
Je travaille sur un nouveau formulaire :
les 2 premières questions "oui/non" sont décisives pour continuer ou non le questionnaire :
Si la réponse est "non" pour les 2 premières questions alors c'est terminé et la personne clique sur le bouton envoyé
Si une des réponse est "Oui" alors une div apparait sous la 2ème et une 3ème question apparaitet la personne clique à la fin sur le bouton envoyé. dans cette 3ème question oui/non, si la personne coche "oui" alors encore une autre div apparait avec d'autres questions.
Jusque là tout fonctionne bien.
Toutes les questions sont obligatoires dès lors qu'une div avec d'autres questions est activée.
Lorsque que l'on clique sur "envoyer", j'ai créé une procédure en javascript qui vérifie que les questions obligatoires ont bien été renseignées.
Cela fonctionne bien avec les 2 premières questions et la première étape de la question 3 (juste le premier oui/non), mais après il ne vérifie plus rien et me renvoie sur ma page de conclusion directement pour les sous questions de la question 3.
J'ai mis une condition de vérification qui fonctionne bien aussi : si la div de la question 3 est affichée, alors il y a vérification ; sinon envoi du questionnaire (si les 2 premières ont bien été renseignées)
Bref, voici la hiérarchie et la numérotation des réponses :
1/
Q0001[0] => Oui
Q0002[0]
Q0002[1]
Q0002[2]
Q0002[3]
Q0002[4]
Q0003 - non obligatoire
Q0001[1] => Non
2 /
Q0004[0] =>Oui
Q0004[0]
Q0004[1]
Q0002[2]
Q0004[3]
Q0004[4]
Q0005 - non obligatoire
Q0004[1] => Non
=> si une des réponses est "oui" alors div affichée :
3/ Q0006[0] => Oui
3.1 / Q0007[0] =>Oui
Q0007[1] => Non
Q0008 - non obligatoire
3.2 / Q0009[0] => Oui
Q0009[1] => Non
Q0010 - non obligatoire
Q0006[1] =>Non
=> je ne vais pas toutes les faire mais c'est pour que vous compreniez mon code après :
Pour la question 1 et 2 => pas de soucis ; mes conditions fonctionnent.
Si la div question 3 est activée et que je ne réponds ni Q0006[0] ni Q0006[1], je clique sur le bouton "envoi" => j'obtiens bien le message d'alerte
Par contre, si je coche la Q0006[0] et pas la suite , le questionnaire se valide quand même.
Voilà mon code :
// verification questions
temp=0;
function checkForm() {
// question 1
if (!document.form1.Q0001[0].checked && !document.form1.Q0001[1].checked){
alert("Vous n'avez pas répondu à la question 1 ! ");
document.form1.Q0001[0].focus();
return false;
}
else if(document.form1.Q0001[0].checked) {
if(!document.form1.Q0002[0].checked && !document.form1.Q0002[1].checked && !document.form1.Q0002[2].checked && !document.form1.Q0002[3].checked && !document.form1.Q0002[4].checked){
alert("Merci de compléter la question 1 !");
document.form1.Q0002[0].focus();
return false;
}
}
// question 2
if (!document.form1.Q0004[0].checked && !document.form1.Q0004[1].checked){
alert("Vous n'avez pas répondu à la question 2 ! ");
document.form1.Q0004[0].focus();
return false;
}
else if(document.form1.Q0004[0].checked) {
if(!document.form1.Q0005[0].checked && !document.form1.Q0005[1].checked && !document.form1.Q0005[2].checked && !document.form1.Q0005[3].checked && !document.form1.Q0005[4].checked){
alert("Merci de compléter la question 2 !");
document.form1.Q0005[0].focus();
return false;
}
}
// question 3
if (document.getElementById('divsuite').style.display == "block"){
if (!document.form1.Q0006[0].checked && !document.form1.Q0006[1].checked){
alert("Vous n'avez pas répondu à la question 3 ! ");
document.form1.Q0006[0].focus();
return false;
}
//question 3.1
else if(document.form1.Q0006[0].checked){
if(!document.form1.Q0007[0].checked && !document.form1.Q0007[1].checked) {
alert("Vous n'avez pas répondu à la question 3.1 !");
document.form1.Q0007[0].focus();
return false;
}
//question 3.2
if (!document.form1.Q0009[0].checked && !document.form1.Q0009[1].checked){
alert("Vous n'avez pas répondu à la question 3.2 ! ");
document.form1.Q0009[0].focus();
return false;
}
}
sendForm();
}