IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

[jquery]Addition du contenu span


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut [jquery]Addition du contenu span
    Bonjour a tous,
    j'ai réaliser un formulaire pour calculer un devis en temps réel (ou presque).
    le problème c'est que je ne sais comment additionner toutes mes valeurs
    obtenue dans les span.

    Pour l'instant je calcule la multiplication de la quantité par le prix
    et j'aimerai avoir un total dans la case "Alltotal".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    jQuery('span[price] input[type=radio].quantity').change(function(){
     
              jQuery('~ span:first',this).text(
     
                jQuery(this).val() *  jQuery(this).parents("span[price]:first").attr('price')
     
              );
            });
            jQuery('span[price] input[type=radio].quantity').change();
    		jQuery('#calc').click(function(){
    			var totalQuantity = 0;
    			jQuery('~ span.total').each(function(){
    			//var quantity = /*isNaN(*/parseInt(this.value);
    				//totalQuantity += quantity;
    			var totalQuantity = jQuery(this).parents("span[price]:first").attr('price')	
    			});
    			alert(this.totalQuantity);
    			jQuery("#Alltotal").text(String(totalQuantity));
    		});
    le html:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <div class="ParentsQuest">
           <label>
             Le site est-il déjà en ligne ?
           </label>
           <span price="750">
               <input type="radio" name="Offline.quantity" value="1"
    class="quantity" />
               oui
               <input type="radio" name="Offline.quantity" value="0"
    class="quantity" />
               non
     
             €<span class="total"></span>
           </span>
         </div>
          <div class="ChildQuest">
           <label>
             existe-t-il une version test en ligne ?
           </label>
           <span price="0">
               <input type="radio" name="Offline.quantity" value="1"
    class="quantity" />
               oui
               <input type="radio" name="Offline.quantity" value="0"
    class="quantity" />
               non
     
             €<span class="total"></span>
     
           </span>
         </div>
          <div class="SecondChildQuest">
           <label>
             Avez-vous une notion du nombre de page prévue ?
           </label>
           <span price="0">
               <input type="radio" name="Offline.quantity" value="1"
    class="quantity" />
               oui
               <input type="radio" name="Offline.quantity" value="0"
    class="quantity" />
               non
     
             €<span class="total"></span>
           </span>
         </div>
    <div class="ParentsQuest">
           <label>
             test1
           </label>
           <span price="750">
               <input type="radio" name="Offline.quantity" value="1"
    class="quantity" />
               oui
               <input type="radio" name="Offline.quantity" value="0"
    class="quantity" />
               non
     
             €<span class="total"></span>
           </span>
         </div>
          <div class="ChildQuest">
           <label>
             test2
           </label>
           <span price="0">
               <input type="radio" name="Offline.quantity" value="1"
    class="quantity" />
               oui
               <input type="radio" name="Offline.quantity" value="0"
    class="quantity" />
               non
     
             €<span class="total"></span>
     
           </span>
         </div>
    <p>€<span id="Alltotal">0</span></p>
          <div id="process">
    	      <input type="button" id="calc" value="Recalcule" />
    	      <input type="button" id="sendForms" value="Resultat" disabled="disabled" />
          </div>

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    J'ai tout essayer pour additionner la valeur contenue dans tous les :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $<span class="total"></span>
    Et afficher le resultat dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p>€<span id="Alltotal">0</span></p>
    mais sans succes regarder mon js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    jQuery('span[price] input[type=radio].quantity').change(function(){
     
              jQuery('~ span:first',this).text(
     
                jQuery(this).val() *  jQuery(this).parents("span[price]:first").attr('price')
     
              );
            });
            jQuery('span[price] input[type=radio].quantity').change();
    		jQuery('#calc').click(function(){
    			jQuery('~span[price].total').each(function(){
    			//var quantity = /*isNaN(*/parseInt(this.value);
    				//totalQuantity += quantity;
    			//var totalQuantity = jQuery(this).parents("span[price]:first").attr('price')
    			var price = parseFloat(this.find("span"));
    			/*for(var i=0; i<price.length; i++){
           			 totalPrice += price[i];
        		}*/
    			if(!isNaN(price))
    					{
    						totalPrice = parseFloat(totalPrice) + parseFloat(price);
    						alert(this.totalPrice);
    						jQuery("#Alltotal").text(String(totalPrice));
    					}
     
    			});
    je suis paumé

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jQuery('span.price input[type=radio].quantity')
    Peut-être...
    Voire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jQuery('span.price :radio .quantity')
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    En faites c'est l'addition de tous les prix contenu de chaque class total qui pose probléme.
    La multiplication de span price par la quantité fonctionne parfaitement.
    C'est au niveau de ceci que je bloque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    jQuery('#calc').click(function(){
    			//jQuery('span[price] :radio.quantity').each(function(){
    			jQuery('span[price] span.total').each(function(){
    			//var quantity = /*isNaN(*/parseInt(this.value);
    				//totalQuantity += quantity;
    			//var totalQuantity = jQuery(this).parents("span[price]:first").attr('price')
    			//var price = parseFloat(this.value);
    			var price =  parseFloat(this.text);
    			/*for(var i=0; i<price.length; i++){
           			 totalPrice += price[i];
        		}*/
    			var totalPrice = 0;
    			if(!isNaN(price))
    					{
    						totalPrice = parseFloat(price);
    						++totalPrice;
    						//alert(this.totalPrice);
    						jQuery("#Alltotal").text(String(totalPrice));
    					}
     
    			});

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/09/2008, 11h49
  2. Clic souris sur bouton contenu dans un <span>
    Par [ced] dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 27/08/2008, 13h30
  3. Réponses: 5
    Dernier message: 25/08/2008, 18h31
  4. [jQuery]Méthode retournant un contenu XML externe
    Par PomFritz dans le forum jQuery
    Réponses: 2
    Dernier message: 22/08/2008, 19h38
  5. addition de contenu des case de StringGrid
    Par faniette dans le forum C++Builder
    Réponses: 3
    Dernier message: 09/05/2008, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo