- Ce sujet contient 6 réponses, 3 participants et a été mis à jour pour la dernière fois par , le il y a 3 semaines et 4 jours.
-
Sujet
-
Bonjour, j’ai un léger dysfonctionnement sur un script mais je ne sais pas quoi faire pour corriger (BB m’avait aidé sur ce script et je reconnais que je ne maitrise pas du tout cette partie du script)
Sur ce formulaire, à la partie 2, l’élève doit saisir une réponse dans chaque champ (Q.2.1 à Q.2.4) et chaque réponse est comparée aux champ R.1.1 à R.1.4
La particularité c’est que pour accepter plusieurs réponses (j’avais demandé de l’aide pour cela), il suffit que l’enseignant sépare chaque réponse “acceptable” du séparateur : “|”
Cependant pour le champ Q.2.2, les 2 seules réponses acceptées devraient être madrid et Madrid. Or en écrivant Madride je m’aperçois que cette réponse est acceptée. (alors que dans le champ R.2.2 est inscrit Madrid|madrid)
Le script de vérification est le script de document verifier (ci dessous) et je pense que le problème se situe entre les lignes 22 et 24
function verifier(n) {
var nCompt = 0;
for (var i = 0 ; i < this.numFields ; i++) {
var oChamp = this.getField(this.getNthFieldName(i));
if ((oChamp.type == "button") && (/Verifier./.test(oChamp.name))) {nCompt = nCompt + 1;}
}
var DerVer = nCompt;
//app.alert("Il y a " + DerVer + " boutons Vérifier dans ce document ; n = "+n);
var colorErr = this.getField("Menu.11").value;
var colorOk = this.getField("Menu.13").value;
var nbChamps=0;
for (var i=0; i<this.numFields; i++) {if (this.getNthFieldName(i).indexOf("Q."+n+".")==0) nbChamps++;}
var erreurs=0;
for (var a=1; a<=nbChamps; a++) {
this.getField("Q."+n+"."+a).readonly=true;
var RegExTest=new RegExp("^"+this.getField("R."+n+"."+a).valueAsString.replace(/[.*+?^${}()/\[\]\\]/g,"\\$&")+"$");
if (RegExTest.test(this.getField("Q."+n+"."+a).value)) {this.getField("Q."+n+"."+a).fillColor=eval("color."+colorOk);}
else {this.getField("Q."+n+"."+a).fillColor=eval("color."+colorErr);erreurs++;this.getField("Erreurs").value++;}
}
if (!erreurs) {
app.alert({cMsg:"C'est exact !", nIcon:2});
var p = parseFloat(n)+1;
//console.println(n);
if (this.getField("Verifier."+p+".0") != null) {this.getField("Verifier."+p+".0").display=display.visible;
this.getField("Verifier."+p+".0").display=display.noPrint;}
if (this.getField("Recommencer."+p+".0") != null) {this.getField("Recommencer."+p+".0").display=display.visible;
this.getField("Recommencer."+p+".0").display=display.noPrint;}
if (this.getField("TQ."+p+".0") != null) {this.getField("TQ."+p+".0").display=display.visible;}
if (this.getField("TL."+p) != null) {this.getField("TL."+p).display=display.visible;}
if (this.getField("Aide."+p+".0") != null) {this.getField("Aide."+p+".0").display=display.visible;
this.getField("Aide."+p+".0").display=display.noPrint;}
var nbChQuestion=0;
for (var i=0; i<this.numFields; i++) {
if (this.getNthFieldName(i).indexOf("Question."+p)==0) nbChQuestion++;
}
for (var a=1; a<=nbChQuestion; a++) {
if (this.getField("Question."+p+"."+a) != null) {this.getField("Question."+p+"."+a).display=display.visible;}
}
var nbChRep=0;
for (var i=0; i<this.numFields; i++) {
if (this.getNthFieldName(i).indexOf("Q."+p+".")==0) nbChRep++;
}
for (var a=1; a<=nbChRep; a++) {
if (this.getField("Q."+p+"."+a) != null) {this.getField("Q."+p+"."+a).display=display.visible;
this.getField("Q."+p+"."+a).readonly=false;
}
}
if (n == DerVer) {
var errMax = this.getField("Menu.7").value;
var ErrCom = this.getField("Erreurs").value;
if (errMax<=ErrCom) {app.alert({cMsg:"Vous avez fait " + ErrCom + " erreur(s). Il fallait faire moins de " + errMax + " erreur(s)."
+"\r"+ " Recommencez le questionnaire", nIcon:2});Raz();}
if (errMax>ErrCom) {app.alert({cMsg:"Bravo, vous avez réussi en faisant moins de " + errMax + " erreur(s).", nIcon:2});}
}
}
var nbChValider=0;
for (var i=0; i<this.numFields; i++) {
if (this.getNthFieldName(i).indexOf("Verifier.")==0) nbChValider++;
}
if (erreurs==1) {app.alert({cMsg:"Il y a une erreur." +"\r"+ "Cliquez sur Recommencer pour refaire la question.", nIcon:2});
this.getField("Verifier.1").readonly=false;
this.getField("Recommencer.1").readonly=false;
}
if (erreurs>1) {app.alert({cMsg:"Il y a "+erreurs+" erreurs." +"\r"+ "Cliquez sur Recommencer pour refaire la question.", nIcon:2});
this.getField("Verifier.1").readonly=false;
this.getField("Recommencer.1").readonly=false;
}
}
- Vous devez être connecté pour répondre à ce sujet.