webForumDet fria alternativet

Loopa igenom formulär och addera delsummor

2 svar · 409 visningar · startad av Annakay

AnnakayMedlem sedan sep. 2003143 inlägg
#1

Nu är jag närapå hjärndöd... :x

Kan någon hjälpa mig att fixa en funktion som vid en ändring i något formulärfält loopar igenom alla formulärfält och adderar värdena i de som har ett namn som börjar med "summa" och sen skriver ut det till ett textfält som heter "totalsumma"?

Blir det rätt om man har ett onChange-event på själva formuläret?

Formuläret är ett enkelt beställningsformulär med textfält som heter typ:
antal_produkt1
pris_produkt1
summa_produkt1
summa_frakt
totalsumma

Snälla snälla...

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2
// Själva funktionen
function addera(){
    var z=document.forms["name_pa_din_form"].elements, sum=0;

    for (var i=0; i<z.length; i++)
        if (/summa/i.test(z[i].name) && ! /totalsumma/i.test(z[i].name))
            sum += parseInt(z[i].value);

    z["totalsumma"].value = sum;
}

// Lägg till funktionen till onkeyup-attributet på berörda rutor.
var z=document.forms["name_pa_din_form"].elements;

for (var i=0; i<z.length; i++)
    if (/summa/i.test(z[i].name) && ! /totalsumma/i.test(z[i].name))
        z[i].onkeyup = z[i].onchange = addera;

Koden är otestad, men testkörd i mitt huvud, så den ska fungera!

AnnakayMedlem sedan sep. 2003143 inlägg
#3

Härligt! Du har räddat min dag, det där hade tagit mig flera veckor att klura ut... :)
Tusen tack!

129 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)