Addition javascript via formulaire
Résolu/Fermé
b-boybaki
Messages postés
160
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
10 juin 2010
-
6 juil. 2009 à 15:19
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 7 juil. 2009 à 11:54
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 7 juil. 2009 à 11:54
A voir également:
- Addition javascript via formulaire
- Formule excel addition - Guide
- Formulaire de réclamation facebook - Guide
- Telecharger javascript - Télécharger - Langages
- Partager des photos via un lien - Guide
- Impossible d'envoyer le message via free erreur 0 - Forum Samsung
12 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
6 juil. 2009 à 15:41
6 juil. 2009 à 15:41
Bonjour,
Est-ce réellement toi qui a codé ça ? Parce que c'est si simpliste que si tu as codé toi même ce que tu nous met, tu dois être en mesure de corrigé tes erreurs.
Enfin soit, ton problème est que tu n'incrémente pas la valeur de ton champ, donc tu ne risque pas de le voir grandir au fur et à mesure de tes clics.
Un code correct serait le suivant :
Ainsi si tu appelle la méthode avec un entier, la valeur de ton champ devrait être incrémentée du nombre passé en paramètre :
Code non testé, possible qu'il y ai des erreurs de frappe, mais l'idée est là et devrait fonctionner.
Est-ce réellement toi qui a codé ça ? Parce que c'est si simpliste que si tu as codé toi même ce que tu nous met, tu dois être en mesure de corrigé tes erreurs.
Enfin soit, ton problème est que tu n'incrémente pas la valeur de ton champ, donc tu ne risque pas de le voir grandir au fur et à mesure de tes clics.
Un code correct serait le suivant :
function increaseValue( theValue ) { var htmlElement = document.getElementById("a"); if ( htmlElement != null ){ htmlElement.value = Integer.parseInt(htmlElement.value) + theValue; } }
Ainsi si tu appelle la méthode avec un entier, la valeur de ton champ devrait être incrémentée du nombre passé en paramètre :
<input type="button" onclick="javascript:calcul('1')" value="+" /> OU <input type="button" onclick="javascript:calcul('12')" value="+" />
Code non testé, possible qu'il y ai des erreurs de frappe, mais l'idée est là et devrait fonctionner.
b-boybaki
Messages postés
160
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
10 juin 2010
3
6 juil. 2009 à 15:51
6 juil. 2009 à 15:51
j'ai une question
theValue aura pour valeur javascript:calcul('12') ce que l'on a mis entre parenthese ???
sinon oui c'est moi qui est coder a l'aide de ce site
http://www.lehtml.com/js/forms.htm
theValue aura pour valeur javascript:calcul('12') ce que l'on a mis entre parenthese ???
sinon oui c'est moi qui est coder a l'aide de ce site
http://www.lehtml.com/js/forms.htm
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
6 juil. 2009 à 15:54
6 juil. 2009 à 15:54
'theValue' est le paramètre de la fonction, donc si tu met "12", il vaudra effectivement "12".
b-boybaki
Messages postés
160
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
10 juin 2010
3
6 juil. 2009 à 15:58
6 juil. 2009 à 15:58
ouki mais y'a un probleme si on met juste un seul + sa concatene
dc fau mettre un parseint a chake fois no ???
pcq si j'ai bien compri le parseint transforme de valeur de type texte en nombre ?
et autre question pourquoi tu as mis .value ici :
htmlElement.value
????
dc fau mettre un parseint a chake fois no ???
pcq si j'ai bien compri le parseint transforme de valeur de type texte en nombre ?
et autre question pourquoi tu as mis .value ici :
htmlElement.value
????
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
6 juil. 2009 à 16:22
6 juil. 2009 à 16:22
htmlElement fait référence à ton object de type text "a", donc si tu fais "htmlElement.value", tu récupère la valeur de ton élément texte.
htmlElement.value = Integer.parseInt(htmlElement.value) + 12
Integer.parseInt est pour s'assurer que le valeur soit numérique, de façon à l'additionner avec ta valeur d'ajout.
Ton champ étant de type texte, si tu ne parse pas, il y a des chances pour que ça se concatène au lieu de s'additionner comme tu l'as dit.
Par contre en paramètre il ne faut pas que tu le passe en tant que chaine de caractère, mais bien en numérique.
Sinon pour être sur et pouvoir passer le paramètre n'importe comment (chaine ou numérique), ajouter un parseInt sur le paramètre comme ceci :
htmlElement.value = Integer.parseInt(htmlElement.value) + Integer.parseInt(theValue);
htmlElement.value = Integer.parseInt(htmlElement.value) + 12
Integer.parseInt est pour s'assurer que le valeur soit numérique, de façon à l'additionner avec ta valeur d'ajout.
Ton champ étant de type texte, si tu ne parse pas, il y a des chances pour que ça se concatène au lieu de s'additionner comme tu l'as dit.
Par contre en paramètre il ne faut pas que tu le passe en tant que chaine de caractère, mais bien en numérique.
Sinon pour être sur et pouvoir passer le paramètre n'importe comment (chaine ou numérique), ajouter un parseInt sur le paramètre comme ceci :
htmlElement.value = Integer.parseInt(htmlElement.value) + Integer.parseInt(theValue);
b-boybaki
Messages postés
160
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
10 juin 2010
3
6 juil. 2009 à 16:25
6 juil. 2009 à 16:25
ok je j'essay de faire sa si je trouve je te poseterai ma soluition tu me dira ce que t'en pense pcq je veux pas que sa soit le fouilli lol
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
6 juil. 2009 à 16:31
6 juil. 2009 à 16:31
Autant pour moi mes souvenirs ne sont plus aussi bons.
Ce n'est pas "Integer.parseInt(...)" mais "parseInt(...)" tout court qu'il faut utiliser.
Un court exemple qui fonctionne :
Ce n'est pas "Integer.parseInt(...)" mais "parseInt(...)" tout court qu'il faut utiliser.
Un court exemple qui fonctionne :
<script language="javascript"> function add ( theValue ){ var obj = document.getElementById("a"); if ( obj != null ){ obj.value = parseInt(obj.value) + parseInt(theValue); } } </script> Numero : <input type='text' id='a'/> <BR> <input type='button' value='+' onclick='add(12)';
b-boybaki
Messages postés
160
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
10 juin 2010
3
6 juil. 2009 à 16:42
6 juil. 2009 à 16:42
sa ne marche pas il me met NaN =S
moi j'ai fait sa mais il ne marche que une fois, si je reclik sur le bouton il ne refait pas l'addition =S
<html>
<head>
<script type="text/javascript">
function calcul2(valeur)
{
var n = 1;
var n1 = 1;
var total = n + n1 + parseInt(valeur);
document.forms[0].a.value=total;
}
</script>
</head>
<body>
<form>
<input type="" name="a" value="1"/>
<input type="submit" onClick="javascript:calcul2('1');return(false)" value="+" />
</form>
</body>
</html>
j'ai même essayer de mettre sa :
var total = total + n + n1 + parseInt(valeur);
mais si je met sa il me met NaN
moi j'ai fait sa mais il ne marche que une fois, si je reclik sur le bouton il ne refait pas l'addition =S
<html>
<head>
<script type="text/javascript">
function calcul2(valeur)
{
var n = 1;
var n1 = 1;
var total = n + n1 + parseInt(valeur);
document.forms[0].a.value=total;
}
</script>
</head>
<body>
<form>
<input type="" name="a" value="1"/>
<input type="submit" onClick="javascript:calcul2('1');return(false)" value="+" />
</form>
</body>
</html>
j'ai même essayer de mettre sa :
var total = total + n + n1 + parseInt(valeur);
mais si je met sa il me met NaN
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
6 juil. 2009 à 16:59
6 juil. 2009 à 16:59
Ben, les résultats que tu obtiens me semble plutôt normaux.
Nul part tu ne récupère la valeur de ton champ comme je l'ai montré dans mon code, comment veux-tu donc qu'il s'incrémente au fil de tes click ?
Ton script fonctionne, seulement c'est toujours (et ce sera toujours) la même valeur qui est affichée.
Si tu met : var total = total + ...., effectivement tu obtiens "NaN" puisque 'total' n'est pas défini à l'intérieur de ton calcul (tu le déclare sur la même ligne comme le résultat de ton calcul)
Regarde bien ce que j'ai mis dans le code, récupère la valeur de ton champ et additionne la avec ton chiffre passé en paramètre, et là seulement ça fonctionnera.
Nul part tu ne récupère la valeur de ton champ comme je l'ai montré dans mon code, comment veux-tu donc qu'il s'incrémente au fil de tes click ?
Ton script fonctionne, seulement c'est toujours (et ce sera toujours) la même valeur qui est affichée.
Si tu met : var total = total + ...., effectivement tu obtiens "NaN" puisque 'total' n'est pas défini à l'intérieur de ton calcul (tu le déclare sur la même ligne comme le résultat de ton calcul)
Regarde bien ce que j'ai mis dans le code, récupère la valeur de ton champ et additionne la avec ton chiffre passé en paramètre, et là seulement ça fonctionnera.
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
6 juil. 2009 à 17:13
6 juil. 2009 à 17:13
Forcément tu ne fais pas ce que je t'ai montré, ça ne risque pas de fonctionner.
b-boybaki
Messages postés
160
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
10 juin 2010
3
6 juil. 2009 à 17:36
6 juil. 2009 à 17:36
sa y'est j'ai trouver lol
enfaite c'était vraimen tout bête :
<html>
<head>
<script type="text/javascript">
function calcul2(valeur)
{
document.forms[0].a.value= parseInt(document.forms[0].a.value,10)+parseInt(valeur,10);
}
</script>
</head>
<body>
<form>
<input type="text" name="a" value="1"/>
<input type="button" onclick="calcul2('1');" value="+" />
<input type="button" onclick="document.forms[0].a.value='1';" value="mise a zero"/>
</form>
</body>
</html>
merci pour ton aide
enfaite c'était vraimen tout bête :
<html>
<head>
<script type="text/javascript">
function calcul2(valeur)
{
document.forms[0].a.value= parseInt(document.forms[0].a.value,10)+parseInt(valeur,10);
}
</script>
</head>
<body>
<form>
<input type="text" name="a" value="1"/>
<input type="button" onclick="calcul2('1');" value="+" />
<input type="button" onclick="document.forms[0].a.value='1';" value="mise a zero"/>
</form>
</body>
</html>
merci pour ton aide
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
7 juil. 2009 à 11:54
7 juil. 2009 à 11:54
En faite il te faut surtout lire ce que les autre te marquent...
Bon courage pour la suite.
Bon courage pour la suite.