Salut,
Et demain je reviens avec d'autres fausses histoires de programmation
Ceci dit c'est tout de même Résolu apparemment

Non cela ne fonctionne pas chez moi mais je pense que c'est une erreur dans ma 2e fonction Javascript ; étant nul part dans ce language, j'ai fait un recopiage de la 1er qui fonctionnait et je n'ai pas eu le temps depuis de bien y regarder (décortiquer) ... jusqu'à maintenant, j'avais réussis à y faire quelques changements mais je ne suis pas encore arrivé à être l'heureux papa d'une fonction complète
Pour plus d'expliquations:
Je récupére la variable temps comme indiqué plus haut
<input type="text" name="tempsp3" id="tempsp3" value="00:00:00" size="6" maxlength="8" onblur="calcVitesse(this, 3); calcvma(this, 1);" />
et 2 fonctions interviennent 'calcVitesse' et 'calvma' (la dernière ne fonctionne pas)
// **************************** Fonction test des champs temps ****************************
function verifTemps(chpTemps){
var tempTab = chpTemps.value.split(':');
var temps = 0;
for(i = 0; i < tempTab.length; i++){
// Conversion de la valeur en entier
var t = parseInt(tempTab[i]);
// Teste si la valeur est un chiffre
if(isNaN(t)){
alert('Seuls les chiffres sont acceptés');
chpTemps.value = '00:00:00';
chpTemps.focus();
return(false);
}
// Teste si les minutes et (ou) les secondes sont comprises entre 0 et 59
else if(i != 0 && tempTab[i] > 59){
alert('Les minutes ou les secondes ne peuvent exéder 59');
chpTemps.value = '00:00:00';
chpTemps.focus();
return(false);
}
else
{
// Cumul du temps
temps = (( Number( tempTab[0] ))
+ ( Number( tempTab[1] ) / 60 )
+ ( Number( tempTab[2] ) / 3600 ) ) ;
// alert(temps);
// Si cumul <= 0 return faux (invalide)
if(temps <= 0) {
alert('Le temps doit être supérieur ou égal à une seconde');
chpTemps.value = '00:00:00';
chpTemps.focus();
return(false);
}else{
return temps;
}
}
}
}
// **************************** Fin de la fonction test des champs temps ****************************
// **************************** Fonction test des champs FC ****************************
function verifFc(chpFc) {
var fcTab = chpFc;
var fc = Number(chpFc.value);
// alert (fc);
if(fc < 20 || fc > 220){
alert('La FC doit être comprise dans des limites raisonnables !');
chpFc.value = '0';
chpFc.focus();
return(false);
}
}
// **************************** Fin de la fonction test des champs FC ****************************
// **************************** Fonction de calcul de la Vitesse en m/min ****************************
function vitesse(tempsp, $palier)
{
if(tempsp != 0)
{
return ((Math.round((($palier/tempsp) / 60 ) * 100 )) / 100);
}
else{
return (false);
}
}
function calcVitesse(chpTemps, v_field)
{
var temps = verifTemps(chpTemps);
// alert(temps);
if (temps)
{
switch (v_field){
case 1 :
vitesse1 = (800 / Number(temps) / 60);
document.forms.test.vitesse1.readonly = false;
document.forms.test.vitesse1.value = String( vitesse1 );
document.forms.test.vitesse1.readonly = true;
break;
case 2 :
$palier = 800;
vitesse2 = vitesse(temps, $palier);
document.forms.test.vitesse2.readonly = false;
document.forms.test.vitesse2.value = String( vitesse2 );
document.forms.test.vitesse2.readonly = true;
break;
case 3 :
$palier = document.forms.test.palier3.value;
vitesse3 = vitesse(temps, $palier);
document.forms.test.vitesse3.readonly = false;
document.forms.test.vitesse3.value = String( vitesse3 );
document.forms.test.vitesse3.readonly = true;
break;
}
}
}
// **************************** Fin de la fonction de calcul de la Vitesse en m/min ****************************
// **************************** Fonction de calcul de la VMA en km/h ****************************
// ne fonctionne pas !
function vma(tempsp, $palier)
{
if(tempsp != 0)
{
return ((Math.round((($palier/tempsp) ) )) / 100);
}else{
return (false);
}
}
function calcvma(chpTemps, v_field)
{
var temps = verifTemps(chpTemps);
// alert(temps);
if (temps)
{
switch (v_field){
case 1 :
$palier = document.forms.test.palier3.value;
tvma = vma(tempsp, $palier);
document.forms.test.tvma.readonly = false;
document.forms.test.tvma.value = String( tvma );
document.forms.test.tvma.readonly = true;
break;
}
}
}
// **************************** Fin de la fonction de calcul de la VMA en km/h ****************************
les valeurs sont retournés au formulaire ainsi
<input id="vitesse3" name="vitesse3" value="" size="4" maxlength="6" readonly/>
pour la fonction 1
<input id="tvma" name="tvma" value="" size="4" maxlength="6"/>
pour la 2e fonction ... c'est bien celle-ci qui ne retourne rien !
J'ai mis [Réglé] parce que je suis persuadé, même si cela ne me retourne encore rien, que tu sais ce que tu as avancé comme solution ... tu n'as pas fait d'expérience sur moi ? J'avais fait quelques recherches sur le net et n'ai vu nulpar comment activé 2 événements avec 'onblur' !
Encore merci
NB: Semblant de rien, j'ai collè mon code au cas où une erreur saute aux yeux des lecteurs
