Question en javascript

Fermé
cyberlulu - 18 févr. 2005 à 10:07
 cyberlulu - 18 févr. 2005 à 11:11
Bonjour

je suis en train d'apprendre un peu le javascript et j'ai vu un script que je ne comprends pas tt à fait.
c'est un script pour vérifier qu'une personne a bien rempli un champ text par une valeur numérique dans un formulaire.
function test_numerique()
{
var valeur;
valeur=document.forms[0].elements["saisie"].value;
if(valeur==parseFloat(valeur)) return true;
else
{window.alert("La valeur saisie ne semble pas être correcte");
 return false;
}

}


Ce que je ne comprend pas c'est pourquoi est-ce qu'on comparer comme ca valeur à parseFloat(valeur). Si j'ai bien compris, parseFloat(valeur) convertit une chaine de caractère en valeur numérique. mais quand on fait : valeur=document.forms[0].elements["saisie"].value; valeur est une chaine de caractère normalement.
donc en faisant valeur==parseFloat(valeur) on compare finalement une chaine de caractère à une valeur numérique... c'est ca que je ne comprends pas

merci d'avance pour tte réponse

2 réponses

Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 77
18 févr. 2005 à 10:20
a bien rempli un champ text par une valeur numérique => onvertit une chaine de caractère en valeur numérique

ta réponse est dans ta question!!
ta fonction regarde la valeur saisie
valeur <-- élément saisie
si élément = float 'réel donc élément numérique saisi
sinon mauvaise saisie

tout simplement
0
ok donc en fait kan on fait
valeur=document.forms[0].elements["saisie"].value;
la valeur n'est pas obligatoirement une chaine de caractère, c'est ca ?
0
Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 77
18 févr. 2005 à 10:42
vérifier qu'une personne a bien rempli un champ text par une valeur numérique dans un formulaire.
ca vérifie aussi les chaine de caractere
exemple
saisie = aaaaaa
valeur=document.forms[0].elements["saisie"].value;
valeur va recevoir rien puisqu'il n'y a pas de chiffre.
on va donc a :
else
{window.alert("La valeur saisie ne semble pas être correcte");
return false;

pour t'en convaincre fait des tests!
voila voila voila
0
en fait je crois kon s'est mal compris
le seul truc ke je comprends pas, c'est au niveau de la condition.
prenons un exemple. l'utilisateur saisit la valeur 12.
donc la variable valeur="12" (en chaine de caractère vu kon a fait valeur=document.forms[0].elements["saisie"].value;)

ensuite parseFloat(valeur) vaut 12
donc la condition donne if("12"=12) .....
d'après ce que j'ai compris valeur sera toujours une chaine de caractère (meme si l'utilisateur rentre un nombre, il le mettra sous forme "nombre saisi")
et donc faire ("12"=12) ca me parait bizarre
0