|
Publicité | ||||||||||||||||||||||
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: mai 2008
Messages: 6
|
Bonjour à tous !
Voici un fragment de code : Code :
<form method="POST" action="traiter_ajout.php" name="form_ajout_question" onsubmit="return verif_vides(form_ajout_question)"> <table> <tr> <td>La question : </td><td><input type="text" name="question" /></td> </tr> <tr> <td>La bonne réponse : </td><td><input type="text" name="bonne_rep" /></td> </tr> <?php $_SESSION['nbreponse']=$_GET['nb_reponse']; for($i=0; $i<$_SESSION['nbreponse']; $i++ ){ $j=$i+1; echo "<tr>"; echo "<td>Mauvaise réponse n°$j : </td>"; echo "<td><input type='text' name='mauvaise[".$j."]'></td>"; echo "</tr>"; } ?> </table> <input type="submit" name="questionnaire" value="Valider la question"> </form> Et avec le code suivant en javascript, je m'assure que tous les champs soient remplis ! Code :
<script language="javascript" type text/javascript> function verif_vides(formulaire) { if(formulaire.question.value.length < 1) { alert('Le champ question doit-être rempli !'); formulaire.question.focus(); return false; } if(formulaire.bonne_rep.value.length < 1) { alert('Le champ bonne réponse doit-être rempli !'); formulaire.bonne_rep.focus(); return false; } if(formulaire.mauvaise[1].value.length < 1) { alert('Le champ mauvaise réponse n°1 doit-être rempli !'); formulaire.mauvaise[1].focus(); return false; } if(formulaire.mauvaise[2].value.length < 1) { alert('Le champ mauvaise réponse n°1 doit-être rempli !'); formulaire.mauvaise[2].focus(); return false; } return true; } </script> Le problème que je rencontre car je ne connais pas du tout le javascript, c'est que je n'arrive pas à tester mes variable "mauvaise[xxx]"! Sachant que leurs nombres varient : il y a au minimum mauvaise[1], et au maximum mauvaise[4]. ex : des fois il ya aura les variables mauvaise[1] et mauvaise[2] et une autre fois, il y aura les variables mauvaise[1], mauvaise[2], mauvaise[3],... En fait le principe est que sur une premiere page l'utilisateur indique le nombre de champs "mauvaises réponses" il veut, et la page d'après propose le formulaire. Et c'est ce formulaire que je souhaiterai tester ! Ca marche pour les champs question et bonne reponse, mais pour les champs mauvaise réponse (mauvaise[xxx]) ça ne fonctionne pas (ça ignore qu'il soit vide), je ne vois pas comment faire. Merci pour votre aide et à bientôt !!! |
|
|
|
|
|
#2 (permalink) | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 595
|
Première remarque:
Adopte une syntaxe qui t'éviteras des problèmes dans l'avenir Code :
formulaire.mauvaise[1] ![]() Code :
document.fomrs['formulaire'].elements['mauvaise'] Code :
document.getElementsByName['mauvaise'] tu recupères donc une collection d'objets : et tu la scannes dans une boucle Code :
var colLen=document.getElementsByName['mauvaise'].length for (i=0;i<colLoen;i++){ alert(document.getElementsByName['mauvaise'][i].value) }
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#3 (permalink) |
|
Invité de passage
![]() Date d'inscription: mai 2008
Messages: 6
|
je ne comprend pas trop :
voici ce que j'ai mis dans mon code javascript à la place de ça : Code :
(...) if(formulaire.mauvaise[1].value.length < 1){ alert('Le champ mauvaise réponse n°1 doit-être rempli !'); formulaire.mauvaise[1].focus(); return false; } (...) Code :
(...) var colLen=document.fomrs['formulaire'].elements['mauvaise'].value).length for (i=0;i<colLoen;i++){ if(document.fomrs['formulaire'].elements['mauvaise'][i].value).length < 1) { alert('Le champ mauvaise réponse n°'i' doit-être rempli !'); document.fomrs['formulaire'].elements['mauvaise'][i].focus(); return false; } } (...) Code :
(...) var colLen=document.getElementsByName['mauvaise'].length for (i=0;i<colLoen;i++){ if(document.getElementsByName['mauvaise'][i].length < 1) { alert('Le champ mauvaise réponse n°'i' doit-être rempli !'); document.getElementsByName['mauvaise'][i].focus(); return false; } } (...) Merci pour l'aide que tu m'apporte ![]() A bientôt ! |
|
|
|
|
|
#4 (permalink) | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 595
|
colLen != colLoen
desolé pour la faute de frappe ...
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#7 (permalink) |
|
Invité de passage
![]() Date d'inscription: mai 2008
Messages: 6
|
Après réssayer le deux méthodes en corrigeant les fautes de frappe, le problème et toujours apparrant, pire avec ces codes, même les deux premiers champs (bonne_rep et question) ne sont plus vérifiés.
D'autres idées pour résoudre ce soucis ? |
|
|
|
|
|
#9 (permalink) |
|
Invité de passage
![]() Date d'inscription: mai 2008
Messages: 6
|
Voici le code des deux versions :
Code :
<script language="javascript" type text/javascript> function verif_vides(formulaire) { if(formulaire.question.value.length < 1) { alert('Le champ question doit-être rempli !'); formulaire.question.focus(); return false; } if(formulaire.bonne_rep.value.length < 1) { alert('Le champ bonne réponse doit-être rempli !'); formulaire.bonne_rep.focus(); return false; } var taille=document.getElementsByName['mauvaise'].length; for (i=0;i<taille;i++){ if(document.getElementsByName['mauvaise'][i].length < 1) { alert('Le champ mauvaise réponse n°'i' doit-être rempli !'); document.getElementsByName['mauvaise'][i].focus(); return false; } } return true; } </script> Code :
<script language="javascript" type text/javascript> function verif_vides(formulaire) { if(formulaire.question.value.length < 1) { alert('Le champ question doit-être rempli !'); formulaire.question.focus(); return false; } if(formulaire.bonne_rep.value.length < 1) { alert('Le champ bonne réponse doit-être rempli !'); formulaire.bonne_rep.focus(); return false; } var taille=document.fomrs['formulaire'].elements['mauvaise'].length; for (i=0;i<taille;i++){ if(document.forms['formulaire'].elements['mauvaise'][i].value).length < 1) { alert('Le champ mauvaise réponse n°'i' doit-être rempli !'); document.forms['formulaire'].elements['mauvaise'][i].focus(); return false; } } return true; } </script> |
|
|
|
|
|
#10 (permalink) |
|
Membre chevronné
![]() Date d'inscription: mars 2008
Messages: 627
|
Bonjour,
Je mets en rouge ce que j'ai repéré, en en vert une explication: Code :
<script language="javascript" type text/javascript>
function verif_vides(formulaire) {
if(formulaire.question.value.length < 1) { //Après vous utilisez une autre technique pour retrouver le champ. Soyez homogène dans votre code.
alert('Le champ question doit-être rempli !');
formulaire.question.focus();
return false;
}
if(formulaire.bonne_rep.value.length < 1) { //Pareil
alert('Le champ bonne réponse doit-être rempli !');
formulaire.bonne_rep.focus();
return false;
}
var taille=document.fomrs['formulaire'].elements['mauvaise'].length;//Un oubli. ;)
for (i=0;i<taille;i++){
if(document.forms['formulaire'].elements['mauvaise'][i].value).length < 1) {
alert('Le champ mauvaise réponse n°'i' doit-être rempli !');//Le '°' pourrait peut-être poser problème un jour, mais la concaténation est le '+' : ...n°' + i + ' doit...
document.forms['formulaire'].elements['mauvaise'][i].focus();
return false;
}
}
return true;
}
</script>
|
|
|
|
|
|
#11 (permalink) |
![]() Date d'inscription: juin 2008
Localisation: Bordeaux
Âge: 39
Messages: 6 690
|
Et aussi :
Code :
<script language="javascript" type text/javascript>
Code :
<script type="text/javascript">
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
|
|
|
|
|
![]() |
||
Test des champs vide d'un formulaire !
|
||
| Outils de la discussion | |
|
|