Avatar billede galaxy Nybegynder
10. november 2005 - 16:27 Der er 8 kommentarer

Dynamisk variabelnavn til form

function calcTotal()
{
    var totalBrutto = 0;
    for (i=1; i<35; i++)
    {       
        var ctrlname = 'pay' +i; 
        var paypris_punktum = document.makebill.elements[ctrlname].value.replace(/,/g,"\.");
        totalBrutto = +totalBrutto + +paypris_punktum;
    }
    document.makebill.totalSum.value = totalBrutto;
}

der hvor den går galt er i: makebill.elements[ctrlname].value

Jeg har også prøvet: makebill.pay+i.value og makebill.pay[i].value

Intet virker, så mit spørgsmål er... hvordan henter jeg værdien af pay1, pay2, pay3 osv. ?
Avatar billede galaxy Nybegynder
10. november 2005 - 16:28 #1
Roenving, Jakob A og OleBole... hvem kommer først ? ;-)
Avatar billede olebole Juniormester
10. november 2005 - 16:32 #2
<ole>

Hvad er galt i resten af koden? Her er der vist intet at komme efter  :)

/mvh
</bole>
Avatar billede olebole Juniormester
10. november 2005 - 16:34 #3
Er du sikker på, elementerne ser sådan ud:
    <input type="text" name="pay1">
Avatar billede galaxy Nybegynder
10. november 2005 - 18:49 #4
NAME="pay'.$day.'"
de oprettes så i en while (PHP), som tæller op fra 1 til 34.
Avatar billede galaxy Nybegynder
10. november 2005 - 18:51 #5
Og hvis jeg henter værdierne ud manuelt, med makebill.pay1.value, makebill.pay2.value osv. virker det.
Avatar billede galaxy Nybegynder
10. november 2005 - 20:37 #6
Nå, jeg lader den stå til i morgen og håber, at et klogt hovede har en løsning i løbet af aftenen. ;)
Avatar billede olebole Juniormester
10. november 2005 - 21:01 #7
Der er ikke nogen, der kommer med en løsning, før du viser resten af koden, for det er ikke i det viste, fejlen ligger  :)
Avatar billede olebole Juniormester
10. november 2005 - 21:05 #8
Test f.eks. dette:

<script type="text/JavaScript">
function calcTotal() {
    var totalBrutto = 0;
    for (i=1; i<5; i++) {
        var ctrlname = 'pay' +i; 
        var paypris_punktum = document.makebill.elements[ctrlname].value.replace(/,/g,"\.");
        totalBrutto = +totalBrutto + +paypris_punktum;
    }
    document.makebill.totalSum.value = totalBrutto;
}
</script>

<form name="makebill">
    <input type="text" name="pay1"><br>
    <input type="text" name="pay2"><br>
    <input type="text" name="pay3"><br>
    <input type="text" name="pay4"><hr>
    <input type="text" name="totalSum"><br>
    <button onclick="calcTotal()">TEST</button>
</form>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester