2012-04-12 5 views
0

Ich bin ein Anfänger Webentwickler und ich muss die Summe einiger Optionsfelder mit unterschiedlichen Werten berechnen, und dieses Ergebnis an einen externen Zahlungsserver weiterleiten .Berechnen der Summe der Optionsfelder, Anzeigen der Summe und Weiterleiten an externen Beanstream-Server

Dies ist, was eine der Optionsschaltflächen wie folgt aussieht: richtig

<div class='container'> 
<label for='p_board_rental' ><strong>Paddleboard Rental</strong> (limited amount available*: </label><br/> 
<input type='radio' name='rental' value='0'/><label class="radio"> No</label><br/> 
<input type='radio' name='rental' value='20'/><label class="radio"> Yes</label><br/> 

Ich brauche das Endergebnis berechnet und dann angezeigt, aber ich habe versucht, so viele Möglichkeiten, und ich kann es nicht erhalten zu arbeiten! Das Beste, was ich bekommen kann, ist die leere Box, in der die Summe erscheinen sollte.

+0

Es wäre hilfreich, wenn Sie den Rest Ihres Javascript und HTML einschließlich der Formular-Tags und der Absenden-Schaltfläche und dem Feld, in dem die Summe angezeigt werden soll, veröffentlichen können. –

Antwort

1

Wenn Sie jQuery verwenden können Sie so etwas wie tun:

function tallyValues(){ 
    var tally = 0; 
    $('input:radio').each(function(){ 
     if($(this).is(':checked')){ 
     tally += parseInt($(this).val()); 
     } 
    }); 
} 

tally wird die Summe der ausgewählten Werte

1

Diese erhalten halten sollten Sie in der Nähe, wo Sie sein möchten. Einfach alle Radio-Buttons durchlaufen, wenn es aktiviert ist, schieben Sie es in ein Array, wenn es nicht bereits im Array vorhanden ist. Dann berechne am Ende die Summe und setze sie in das Textfeld.

Es kann einige jquery Funktionen geben, um dies ein wenig eleganter zu machen.

var array = new Array(); 

$(":input[type='radio']", "#containerOfChoice").each(function() { 
    if ($(this).is(':checked')) { 
     var value = $(this).attr("value"); 
     if ($.inArray(value, array) == -1) { 
      array.push(value); 
     } 
    } 
}) 

var total = 0; 
for (var i = 0; i < array.length; i++) { 
    total += parseInt(array[i]); 
} 

$("#textBoxOfChoice").val(total);