Contrôles en Javascript
E. Roumegou

Tester si un champs est numérique en code javascript. Quelques possibilités de scripts
Voici défini le champs du formulaire

<form name=formulaire>
<p><font size="2"
face="Arial, Helvetica, sans-serif">Saisir un nombre<br>
<input name="NBNIVO1" type="text"
onChange="CtrlNum(this,'Vous devez saisir un nombre')" value "0" size="5" maxlength="5"></font></p>
</form>

En utilisant les expressions régulières pour un nombre NNNN ou NNN,NN ou NNN.NNN

function CtrlNum(objet,msgerr)
{
with (objet) // Pour l'objet en paramètre
{
if (!objet.value.match("^[0-9]*(,|\.)?[0-9]*$")) // Si valeur n'est pas numérique
{
if (msgerr!="") {alert(msgerr);}
objet.select(); // Resélectionne le champ
objet.focus(); // Resélectionne le contenu
return false;
}
else
{ return true; }
}
}

En utilisant les expressions régulières pour un nombre NNNN ou NNN,NN ou NNN.NNN

function CtrlNum(objet,msgerr)
{
with (objet) // Pour l'objet en paramètre
{
if (!objet.value.match("^[0-9]*(,|\.)?[0-9]*$")) // Si valeur n'est pas numérique
{
if (msgerr!="") {alert(msgerr);}
objet.select(); // Resélectionne le champ
objet.focus(); // Resélectionne le contenu
return false;
}
else
{ return true; }
}
}

En utilisant une boucle de contrôle des caractères (merci à Olivier Priser pour son aide)

function CtrlNum(objet,msgerr)
{
var RefString="1234567890";
var EstNum=true;
with (objet) // Pour l'objet en paramètre
{
InString=objet.value;
for (Count=0; Count < InString.length; Count++) {
TempChar= InString.substring (Count, Count+1);
if (RefString.indexOf (TempChar, 0)==-1)
{EstNum=false;break;}
}

if (!EstNum) // Si valeur n'est pas numérique
{
if (msgerr!="") alert(msgerr);
objet.select(); // Resélectionne le champ
objet.focus(); // Resélectionne le contenu
return false;
}
else
return true;
}
}

Trouvé sur Internet, mais ne détectait pas les caractères incorrects après le 1er caractère.

function CtrlNum(objet,msgerr)
{
with (objet) // Pour l'objet en paramètre
{
valeur=parseInt(value);
if (isNaN(valeur)) // Si valeur n'est pas numérique
{
if (msgerr!="") {alert(msgerr);}
objet.select(); // Resélectionne le champ
objet.focus(); // Resélectionne le contenu
return false;
}
else
{
return true;
}
}
}