Splittare stringa e prenderne valore

  • Creatore Discussione Creatore Discussione Emix
  • Data di inizio Data di inizio

Emix

Utente Attivo
15 Feb 2010
596
0
16
Buongiorno ho un problema.. ho dei check box che se checkati mi restituiscono una stringa di tipo:

Codice:
Servizio|10,00|70

Io devo far in modo che prenda sempre il valore al centro (nel caso dell'esempio 10,00) e se checkato lo sommi.

Ho scritto questo script che però non funziona... o meglio il primo check funziona bene e lo somma, ma quando lo de spunto o ne spunto altri mi restituisce sempre NaN.
Questo lo script:

HTML:
<script language="javascript">
function calcolaTotale(c) {
var one=0;
one = parseFloat(<?php echo($xml->Importo);?> );
var allChecks = document.testform.elements[c.name];
var tot = 0;
for (var i = 0; i < allChecks.length; i++) {
miastringa = new String(allChecks[i].value)
miaarray = miastringa.split("|")
if (allChecks[i].checked == true){
allChecks[i].value = miaarray[i];
} else {
allChecks[i].value = 0;
}
tot += (allChecks[i].checked ? parseFloat(allChecks[i].value) : 0);
}
document.testform.totale.value = tot;
document.testform.myresult.value = ((one * 1) + (tot * 1));
}
</script>


Dove sbaglio ??
 
Ciao, puoi postare anche l'html delle checkbox : non capisco perchè riassegni il value e a cosa serve quella variabile php
Prova anache questo esempio in jquery
HTML:
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script language="javascript">
    $(document).ready(function () {
        calcolaTotale();
        $("#testform input:checkbox").change(function () {
            calcolaTotale();
        });
    });
    function calcolaTotale() {
        var tot = 0;
        $("#testform input:checkbox:checked").each(function () {
            tot += parseFloat($(this).val().split("|")[1]);
        });
        $("#totale").html(tot.toFixed(2));
    }
</script>

<form id="testform">
    <input type="checkbox" value="Servizio|10,30|70"/> 70
    <input type="checkbox" value="Servizio|23,00|80"/> 80
    <input type="checkbox" value="Servizio|11,32|90"/> 90
</form>

Totale = <span id="totale"></span>
 

Discussioni simili