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> |
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;
}
}
}