Problème de typage dans un formulaire type="num"

Problème de typage dans un formulaire type="num" - HTML/CSS - Programmation

Marsh Posté le 22-03-2005 à 21:44:40    

J'ai un problème de typage dans un formulaire type="num"
Etant donné que la valeur saisie est numérique, je pensai qu'elle était stockée en type int.
En fait, elle est stockée en type string
J'ai besoin d'additionner les chiffres entrés dans mes cases (numérique) de mon formulaire
 
Voici un extrait de mon code :

<INPUT type="num" size=2 name="jour">
<TD><INPUT type="num" size=2 name="mois">
<TD><INPUT type="num" size=4 name="annee">
 
jour = document.formulaire.jour.value;
mois = document.formulaire.mois.value;
annee = document.formulaire.annee.value;
addition_date_naissance = 0;
 
addition_date_naissance = jour + mois + annee; /* considere ça comme des char, il faudrait transtyper, mais comment ?*/


---------------
Membre d'honneur du CLUB DOROTHEE (abonné à Dorothée magazine depuis 1978).  Directeur honnoraire de l'association "Sauvez Bernard Minet" (plus connue sous le nom de Bernard's Mined Club).
Reply

Marsh Posté le 22-03-2005 à 21:44:40   

Reply

Marsh Posté le 22-03-2005 à 21:54:32    

MAIS OU AS-TU TROUVE LE TYPE NUM ????? :heink:
 
Les seules valeurs possible de l'attribut type sont :

text|password|checkbox|radio|submit|reset|file|hidden|image|button

Reply

Marsh Posté le 22-03-2005 à 23:07:02    

FlorentG a écrit :

MAIS OU AS-TU TROUVE LE TYPE NUM ????? :heink:
 
Les seules valeurs possible de l'attribut type sont :

text|password|checkbox|radio|submit|reset|file|hidden|image|button



 
Oups, effectivement cela n'existe pas  :lol:  
Voici la réponse à mon problème :
 
jour = parseInt(document.formulaire.jour.value,10);
etc...
Il faut mettre en base 10, car les chiffres précédés d'un 0, comme 08 et 09 sont égale à 0
Je ne sais pas pourquoi, mais en mettant en base 10, le problème disparaît, ils sont bien égales à 8 et 9 :D  

 
La fonction parseInt() :
Retourne un nombre entier converti à partir d'une chaîne
La fonction parseInt() permet de convertir une variable passée en paramètre (soit en tant que chaîne de caractère, soit en tant que nombre dans la base précisée en second paramètre) et le convertit en nombre entier (en base décimale). La syntaxe de la fonction parseInt() est la suivante :
 
parseInt(chaine,base);
 
 
Pour que la fonction parseInt() retourne un entier, la chaine passée en paramètre doit commencer par des caractère valides c'est-à-dire les chiffres [0-9] ou le préfixe hexadécimal 0x, et/ou les caractères +, -, E et e. Dans le cas contraire la fonction parseInt() retournera la valeur NaN (Not a Number).
 
Dans les navigateurs supportant une version de Javascript antérieure à la version 1.1, le chiffre 0 sera renvoyé.
 
Si les caractères suivants ne sont pas valides, ils seront ignorés par la fonction parseInt(). Si la chaîne passée en paramètre représente un nombre possédant une partie littérale, celle-ci sera tronquée.
 
Le paramètre base est un entier facultatif permettant de préciser la base devant être utilisée pour interpréter la chaîne. Il vaut 10 par défaut . Si le paramètre base n'est pas précisé (ou s'il est fixé à la valeur 10), la base utilisée sera la base décimale; la base sera 16 si la chaîne commence par 0x, elle sera 8 si la chaîne commence par 0.  
 
 
Pour en savoir plus
http://msdn.microsoft.com/library/ [...] rseint.asp
http://www.commentcamarche.net/jav [...] 3?imprim=1


Message édité par aragorns le 23-03-2005 à 00:30:39

---------------
Membre d'honneur du CLUB DOROTHEE (abonné à Dorothée magazine depuis 1978).  Directeur honnoraire de l'association "Sauvez Bernard Minet" (plus connue sous le nom de Bernard's Mined Club).
Reply

Marsh Posté le 22-03-2005 à 23:08:09    

:jap: :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed