PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WEBDEV 2024 → Contrôle numérique en Javascript.
Contrôle numérique en Javascript.
Iniciado por Roumegou, 06,jul. 2004 14:58 - 2 respuestas
Publicado el 06,julio 2004 - 14:58
Pour les bons du JS ...
Pour un formulaire géré dynamiquement, je veux effectuer un contrôle
numérique. J'ai donc :
1 - dans mon formulaire, ma zone décrite comme suit
<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="7" maxlength="5"></font></p>

avec ma fonction JS
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;
}
}
}

Cela est efficace si je saisis A dans la zone et m'envoie le msg, mais pas
si je saisis 12A.
Il se comporte comme s'il ne testait que le 1er car ??

J'ai essayé avec OnBlur à la place de OnChange mais c'est pareil.

Merci de vos réponses.
Publicado el 06,julio 2004 - 16:25
Salut,

voici une fonction qui devrait résoudre ton problème :

function isNumberString(InString) {
if(InString.length==0) return (false);
var RefString="1234567890";
for (Count=0; Count < InString.length; Count++) {
TempChar= InString.substring (Count, Count+1);
if (RefString.indexOf (TempChar, 0)==-1)
return (false);
}
return (true);
}

Et par la même je te félicite et te remercie de ton initiative pour ton
site. BRAVO !!!!

Bonne fin de journée,

Olivier


"Roumegou" <ml.roumeg@4usinfo.com> a écrit dans le message de
news:40ea862e$1@news.pcsoft.fr...

Pour les bons du JS ...
Pour un formulaire géré dynamiquement, je veux effectuer un contrôle
numérique. J'ai donc :
1 - dans mon formulaire, ma zone décrite comme suit
<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="7" maxlength="5"></font></p>

avec ma fonction JS
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;
}
}
}

Cela est efficace si je saisis A dans la zone et m'envoie le msg, mais pas
si je saisis 12A.
Il se comporte comme s'il ne testait que le 1er car ??

J'ai essayé avec OnBlur à la place de OnChange mais c'est pareil.

Merci de vos réponses.

Publicado el 06,julio 2004 - 22:23
"Olivier Priser" <olivier@doors.ch> a écrit dans le message de news:
40ea9a6c$1@news.pcsoft.fr...

Salut,
Et par la même je te félicite et te remercie de ton initiative pour ton
site. BRAVO !!!!


Merci de tes encouragements et de ton aide.
Finalement pour mon contrôle, je me suis orienté vers les expressions
régulières mais j'ai quand meme testé ta version et cela fonctionne.
J'ai rajouté ces scripts dans ma rubrique "A noter sur les tablettes" si
cela interesse certain.



Bonne fin de journée,

Olivier