Je viens de me mettre dans l'idée de rassembler plusieurs fonctions (essentiellement de test) avant de rendre visible un bouton de soumission !
Voici coment je active la fonction en question:
<input name="submit" type="button" onClick="valid();" value="Evaluation" >
Dans certaines parties de la fonction qui suit, je fais en plus des calcules et renvoie des valeurs dans mon formulaire:
Code : Tout sélectionner
// **************************** Fonction 'Apparition d'un bouton de soumission' ****************************
function valid(){
who = document.forms.test.iduser.value; //alert ("Id de l'utilisateur est " + who);
fcrecup = document.forms.test.fcrecup.value; //alert ("La FC après récupération est " + fcrecup);
recup = document.forms.test.recup.value; //alert ("Qualificatif de la récupération " + recup);
dateserveur = document.forms.test.dateserveur.value.split("-"); //alert ("La date du serveur est " + dateserveur);
serveur = dateserveur[2] +''+dateserveur[1]+''+dateserveur[0]; //alert ("La date du serveur " + serveur);
datetest = document.forms.test.datetest.value.split("-"); //alert ("La date du test est " + datetest);
test = datetest[2]+''+datetest[1]+''+datetest[0]; //alert ("La date du test " + test);
fcp1 = document.forms.test.fcp1.value; //alert ("La FC du palier 1 est de " + fcp1);
fcp3 = document.forms.test.fcp3.value; //alert ("La Fc au palier 3 est de " + fcp3);
vitesse1 = document.forms.test.vitesse1.value; //alert ("La vitesse au palier 1 est " + vitesse1);
vitesse2 = document.forms.test.vitesse2.value; //alert ("La vitesse au palier 2 est " + vitesse2);
vitesse3 = document.forms.test.vitesse3.value; //alert ("La vitesse au palier 3 est " + vitesse3);
vma = document.forms.test.vma.value; //alert ("La VMA est de " + vma);
vo2max = document.forms.test.vo2max.value; //alert ("La V02max est de " + vo2max);
pma = document.forms.test.pma.value; //alert ("La PMA est " + pma);
if (test > serveur){
alert ("Le test ne peut s'être déroulé à une date qui n'a pas encore existé ! ! !");
document.forms.test.datetest.focus();
return(true);
}else if (fcp3 < 20 || fcp3 > 220) {
alert ("Vous n'avez pas introduit de valeur pour la FC au palier 3");
document.forms.test.fcp3.focus();
return;
} else {
fcM = fcp3; //alert ("La FCmax est de " + fcM);
document.forms.test.fcmax.readonly = false;
document.forms.test.fcmax.value = String( fcM );
document.forms.test.fcmax.readonly = true;
}
if ((vma <= 0) || (vo2max <= 0)) {
alert ("Avez-vous entré le temps au Palier 3 ?");
document.forms.test.tempsp3.focus();
return;
}
if ((recup != "Excellente") && (recup != "Très bonne") && (recup != "Bonne") && (recup != "Moyenne") && (recup != "Mauvaise") && (recup != "Très mauvaise") || (fcrecup <= 0)){
alert ("Avez-vous entré votre FC après 5' de repos ?");
document.forms.test.fcrecup.focus();
return;
}
if ((vitesse3 != " ") && (vitesse2 != " ") && (vitesse1 != " ") && (vitesse3 > vitesse2) && (vitesse2 > vitesse1)) {
alert ("La FC du palier 1 est de " + fcp1);
alert ("La Fc au palier 3 est de " + fcp3);
alert ("La vitesse au palier 1 est " + vitesse1);
alert ("La vitesse au palier 2 est " + vitesse2);
alert ("La vitesse au palier 3 est " + vitesse3);
alert ("La PMA est " + pma);
B30 = ((fcp3 - fcp1)/(vitesse3 - vitesse1));
alert ("B30 est de " + B30);
B31 = (fcp3 - ((fcp3 - fcp1)/(vitesse3 - vitesse1)) * vitesse3);
alert ("B31 est de " + B31);
fcca = (Math.round(B30*pma*(vitesse3/100)+B31));
alert ("La valeur de la fcca est de "+ fcca);
document.forms.test.fcca.readonly = false;
document.forms.test.fcca.value = String( fcca );
document.forms.test.fcca.readonly = true;
}else{
alert ("Vous avez commis une erreur dans la prise de temps aux différents paliers ! ");
return (false);
}
if (who <= 0){
alert ("Malheureusement, vous n'êtes pas enregistré ... vous ne pourrez donc pas conserver vos données en mémoire et obtenir un plan d'entraînement !");
return;
}else {
document.getElementById('btn_val').style.visibility = 'visible';
}
} J'ai donc une question par rapport à ce 'NaN' qui n'apparaîssait pas dans la fonction initiale ... qu'est-ce qui se passe ? POur info, tout les alerts me renvoit les bonnes données sauf pour la fcca !
Une autre question, j'ai voulu essayé de faire simple en rassemblant une série de fonction ... est-ce une bonne méthode ?
Merci