2010-09-11 4 views
0

Je construis une boutique en ligne où le client peut sélectionner des pièces personnalisées. Je suis assez nouveau pour javascript, mais j'ai réussi à créer une liste de boutons radio, où le prix est ajouté à partir de chaque section.Comment puis-je afficher une valeur de texte pour les boutons radio en utilisant javascript

Je voudrais une boîte pour montrer toutes les options sélectionnées, pas seulement la somme totale.

J'ai inclus le texte avec la valeur et utilisé parseInt. Y a-t-il un équivalent que je peux utiliser pour tirer le texte, pas le nombre, de la valeur?

Mon code à ce jour:

<head> 
    <script type="text/javascript"> 
     function DisplayPrice(price){ 
         var val1 = 0; 
         for(i = 0; i < document.form1.part.length; i++){ 
           if(document.form1.part[i].checked == true){ 
             val1 = document.form1.part[i].value; 
           } 
         } 

         var val2 = 0; 
         for(i = 0; i < document.form2.part2.length; i++){ 
           if(document.form2.part2[i].checked == true){ 
             val2 = document.form2.part2[i].value; 
           } 
         } 

     var val3 = 0; 
         for(i = 0; i < document.form3.part3.length; i++){ 
           if(document.form3.part3[i].checked == true){ 
             val3 = document.form3.part3[i].value; 
           } 
         } 


         var sum=parseInt(val1) + parseInt(val2) + parseInt(val3); 
      document.getElementById('totalSum').value=sum; 
     } 
    </script> 
</head> 
<body> 
    <form name="form1" id="form1" runat="server"> 
     <br> 
     <input id="rdo_1" type="radio" value="0 1.8ghz2xAMD" name="part" checked="checked" onclick="DisplayPrice(this.value);">1.8Ghz Dual Core AMD 
     <br> 
     <input id="rdo_2" type="radio" value="50 2ghz2xAMD" name="part" onclick="DisplayPrice(this.value);">2Ghz Dual Core AMD 
     <br> 
    </form>Choose your memory:<br /> 
    <form name="form2" id="form2" runat="server"> 
     <br> 
     <input id="rdo_1" type="radio" value="0 1333corsair1gb" name="part2" checked="checked" onclick="DisplayPrice(this.value);">1333 Corsair 1GB 
     <br> 
     <input id="rdo_2" type="radio" value="50 1333corsair2x1gb" name="part2" onclick="DisplayPrice(this.value);">1333 Corsair 2x1GB 
     <br> 
    </form>Choose your graphics card:<br /> 
    <form name="form3" id="form3" runat="server"> 
     <br /> 
     <input id="rdo_1" type="radio" value="0 5830ATI1gb" name="part3" checked="checked" onclick="DisplayPrice(this.value);">1GB ATI 5830 
     <br /> 
     <input id="rdo_2" type="radio" value="50 5850ATI1gb" name="part3" onclick="DisplayPrice(this.value);">1GB ATI 5850 
     <br /> 
     <input id="rdo_3" type="radio" value="75 5870ATI1gb" name="part3" onclick="DisplayPrice(this.value);">1GB ATI 5870 
     <br /> 
    </form> 
</body> 

Merci à l'avance pour les conseils que vous pouvez donner.

Répondre

0

Les valeurs semblent être régulièrement séparées par un espace. Vous pouvez donc utiliser la fonction split() pour diviser la valeur en deux parties, la première partie contenant le prix et la deuxième partie contenant le texte.

var parts = value.split(" "); 
var price = parseInt(parts[0]); 
var text = parts[1]; 

Cela dit, il y a mieux/plus agréables façons d'atteindre l'exigence fonctionnelle, mais c'est à vous comme un exercice d'apprentissage.

+0

Merci pour la réponse rapide! Juste voir si je peux obtenir cela pour travailler, et aussi avec une deuxième valeur numérique. Très appréciée – kadeshiseraph

Questions connexes