Ce code recupere une valuer dans une zone de texte verifie l'integrité de la saisie et la convertit si possible ennombre decimal à 2 chiffres,efface le contenu en prevenant l'utilisateur sinon.
Source / Exemple :
function TestNombre(id)
{ //Fonction prenant nu nombre dans une zone de texte : test si c'est un chiffre si oui le convertit en decimal(10e-2) sinon tante de le convertir en decimal
// efface le contenu de la zone de saisie si convertion impossible
// arrondit a 2 chiffres si il s'agit deja d'un decimal
var d=document.getElementById(id);
if (d.value!='')
{
if (isNaN(d.value)==true)//si on tombe sur une virgule la valeur n'est pas considérée comme un nombre
{
Num=d.value.indexOf(',');
//on remplace la virgule par un point
Resultat=d.value.substring(0,Num)+'.'+d.value.substring(Num+1,d.value.length);d.value=Resultat;d.value=Math.round(d.value*100)/100;
if (isNaN(d.value)==true)
{
d.value='';
alert('VOUS DEVEZ SAISIR UN NOMBRE DECIMAL OU ENTIER');
return false;
}
}
Temp=Math.round(d.value*100)/100;// on arrodi a 2 chiffres si decimal a plsu de 2 chiffres
d.value=Temp;
//on replace le nombre de zero necessaire derrier le chiffre
if ((d.value.length-Math.abs(d.value.indexOf('.')))==2)//cas ou un chiffre derriere la point.rem: la value absolue sert a ne pas tomber dasn le cas ou indexOf=-1
{
d.value =Temp+'0';
}
else if (d.value.indexOf('.')==-1)// cas ou entier
{
d.value=d.value+'.00';
}
else if ((d.value.length-d.value.indexOf('.'))==1) //cas ou point mais pas de chiffres derriere
{
d.value=Temp+'.00';
}
return true;
}
}