Function JS calcul automatique des champs

Function JS calcul automatique des champs - HTML/CSS - Programmation

Marsh Posté le 15-04-2008 à 22:40:05    

Bonjour à tous
 
J'ai un formulaire qui contient 7 champs. Il n'y a que 3 de ces 7 champs qui peuvent contenir qqch (dans ce cas un c'est nombre).  
J'aimerais faire une fonction qu'addition tous les champs qui contienne qqch et qu'après il l'envoie le résultat dans un champ texte pour que il soit visible par l'utilisateur.
Donc en fait, faudrait parcourir mes 4 champs qu'ont des noms differents, les verifier pour voir s'ils ont qqch, puis après additioner les valeur de ces champs pour les envoyer dans un champ texte.
 
Le problème est que je ne vois pas du tout comment faire cela, comment faire un boucle qui teste les noms de mes champs (à savoir que le noms de me champs sont champ1, champ2, champ3....champ7)un par un et récupérer ses valeur pour ensuite les additionner.
 
SVP si vous savez comment faire, faites moi savoir. que je puisse commencer dans la bonne direction
 

Reply

Marsh Posté le 15-04-2008 à 22:40:05   

Reply

Marsh Posté le 18-04-2008 à 18:54:48    

pour créer tes 7 champs :
<input type='text' id='champ1' onfocus='test3();' onblur='addition();'><br />
<input type='text' id='champ2' onfocus='test3();' onblur='addition();'><br />
<input type='text' id='champ3' onfocus='test3();' onblur='addition();'><br />
<input type='text' id='champ4' onfocus='test3();' onblur='addition();'><br />
<input type='text' id='champ5' onfocus='test3();' onblur='addition();'><br />
<input type='text' id='champ6' onfocus='test3();' onblur='addition();'><br />
<input type='text' id='champ7' onfocus='test3();' onblur='addition();'><br />
<!-- champ de résultat -->
<input type='text' id='total'>
 
 
Puis pour la partie javascript :
 
<script language='text/javascript'>
function test3(){
var i=1;
var total=0;
for (i=1;i<=7;i++){
if (document.getElementById('champ'+i).value!=null)
{
total++;
}
}
if (total>=3){
 alert("vous avez déja rempli 3 champs" );
}
}
 
function addition(){
 var total=0;
 var i=1;
 for (i=1;i<=7;i++){
if (document.getElementById('champ'+i).value!=null){
total=total+parseInt(document.getElementById('champ'+i).value);
}
}
document.getElementById('total').value=total;
}
</script>
 
J'espère que ca te conviendra !
Bonne soirée.

Reply

Marsh Posté le 18-04-2008 à 23:06:44    

Wow, trop bien. On fait j'ai pu trouver une autre solution pour arriver à faire mes calcules, car j'avais de la peine  à creer cette boucle.
Mais merci bcp pour ton aide je vais quand même tester ton code
 
grand merci.

Reply

Marsh Posté le 09-05-2008 à 17:24:54    

j'ai un peu le meme probleme, mais je saisi mal le code que vous avez utilisez...
mon probleme c'est que je doit mettre le resultat du calcule dans le champs texte résultat...
(je fais une mini calculatrice...
 
 
 
voila mon code:
 
<head>
<script javascript>
function calculer()
 {
 var nb1=document.calculatrice.ch1.value;
 var nb2=document.calculatrice.ch3.value;
 for(i=0;i<document.calculatrice.ch2.options.length;i=i+1)
  {
  if(document.calculatrice.ch2.options[i].selected)
   {
   var op=document.calculatrice.ch2.options[i].text;  
   }}
alert(nb1+op+nb2)
var calcul=nb1+op+nb2;
var resultat=eval(calcul)
}
</script>
</head>
<body>
<form name="calculatrice" method="post" onSubmit="calculer()">
 <input type="text" name="ch1">
 <select name="ch2">
  <option value="+">+</option>
  <option value="-">-</option>
  <option value="*">*</option>
  <option value="/">/</option>
 </select>
 <input type="text" name="ch3">
=  
 <input type="text" name="result" value="">  
 <input type="submit" value="ok">  
</form>
 
il faudrait le resultat(en rouge) dans le champs texte ( en bleu)...y-a-t-il quelqu'un qui sache le faire???
j'ai déja essayé plein de truk mais sa bloc toujours...j'suis a court d'idée...

Message cité 1 fois
Message édité par necrolith le 09-05-2008 à 17:28:01
Reply

Marsh Posté le 09-05-2008 à 17:58:05    

necrolith a écrit :

j'ai un peu le meme probleme, mais je saisi mal le code que vous avez utilisez...
mon probleme c'est que je doit mettre le resultat du calcule dans le champs texte résultat...
(je fais une mini calculatrice...
 
 
 
voila mon code:
 
<head>
<script javascript>
function calculer()
 {
 var nb1=document.calculatrice.ch1.value;
 var nb2=document.calculatrice.ch3.value;
 for(i=0;i<document.calculatrice.ch2.options.length;i=i+1)
  {
  if(document.calculatrice.ch2.options[i].selected)
   {
   var op=document.calculatrice.ch2.options[i].text;  
   }}
alert(nb1+op+nb2)
var calcul=nb1+op+nb2;
var resultat=eval(calcul);
document.calculatrice.result.value=resultat;

}
</script>
</head>
<body>
<form name="calculatrice" method="post" onSubmit="calculer()">
 <input type="text" name="ch1">
 <select name="ch2">
  <option value="+">+</option>
  <option value="-">-</option>
  <option value="*">*</option>
  <option value="/">/</option>
 </select>
 <input type="text" name="ch3">
=  
 <input type="text" name="result" value="">  
 <input type="submit" value="ok">  
</form>
 
il faudrait le resultat(en rouge) dans le champs texte ( en bleu)...y-a-t-il quelqu'un qui sache le faire???
j'ai déja essayé plein de truk mais sa bloc toujours...j'suis a court d'idée...


Reply

Marsh Posté le 09-05-2008 à 18:04:11    

j'ai déja essayé cette méthode et je vient de la refaire à l'instant et le champs reste toujours vide...
 
je comprend pas parce que logiquement sa devrais marché.... :pfff:  
 
merci quand meme paulp

Reply

Marsh Posté le 09-05-2008 à 18:11:12    

necrolith a écrit :

j'ai déja essayé cette méthode et je vient de la refaire à l'instant et le champs reste toujours vide...
 
je comprend pas parce que logiquement sa devrais marché.... :pfff:  
 
merci quand meme paulp


 
Et as-tu un message d'erreur (outils/console d'erreur sous firefox) ?
Sinon, essaye alert(resultat);

Reply

Marsh Posté le 09-05-2008 à 18:14:44    

dans les alertes sa marche...
euh pour scripté j'utilise webexpert...il a son propre visionneur...
 
et quand je clique sur ok (submit)sa affiche l'alerte et sa vide mes champs c'est tout...

Reply

Marsh Posté le 09-05-2008 à 18:19:00    

necrolith a écrit :

dans les alertes sa marche...
euh pour scripté j'utilise webexpert...il a son propre visionneur...
 
et quand je clique sur ok (submit)sa affiche l'alerte et sa vide mes champs c'est tout...


Il faut que ta fonction onsubmit retourne false, pour pas que la soumission du formulaire se passe :
<form name="calculatrice" method="post" onSubmit="calculer(); return false;">

Reply

Marsh Posté le 09-05-2008 à 18:26:40    

bon déja mes champ se vide plus...
maintenant reste plus qu'a afficher le resultat dans le champs texte...
 
et sa m'énerve sa fait 2 jours que je suis dessus...et je bloque...

Reply

Marsh Posté le 09-05-2008 à 18:26:40   

Reply

Marsh Posté le 09-05-2008 à 18:28:08    

necrolith a écrit :

bon déja mes champ se vide plus...
maintenant reste plus qu'a afficher le resultat dans le champs texte...
 
et sa m'énerve sa fait 2 jours que je suis dessus...et je bloque...


Est-ce que tu as moyen de voir les erreurs javascript ?
 
Sinon, ouvre ta page dans firefox et regarde dans la console d'erreur ...

Reply

Marsh Posté le 09-05-2008 à 18:33:32    

j'ai une question...je peux balancer mon ordi par la fenetre???
 
sa fait 2 jours que je cherche un truk...qui marche.
webexpert n'arrive pas a le faire marcher et pouf dans opera du premlier coup....
c'est a vouloir me rendre fou mdr
 
merci paulp sans toi j'aurais jamais réussi...
 
PS: entre temps j'ai rajouté un blocage qui empeche de remplir les champs avec autre choses que des chiffres (donc pas de lettres ni de virgule ^^)

Reply

Sujets relatifs:

Leave a Replay

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