Avatar billede rane Nybegynder
14. juli 2006 - 10:49 Der er 9 kommentarer og
1 løsning

Lægge radiobutton værdier sammen

Jeg har en bunke radiobuttons der bliver genereret dynamisk. De har alle et dato "name" a la:

<input type="radio" name="14-07-2006" value="1" />
<input type="radio" name="14-07-2006" value="2" />

<input type="radio" name="15-07-2006" value="1" />
<input type="radio" name="15-07-2006" value="2" />

Hvordan får jeg lagt disse værdier sammen automatisk (evt. ved klik på en beregn knap) og vist i et input felt?

Bonus spørgsmål:  Kan man re-assigne værdierne i de enkelte radio buttons? (eks. der hvor value er 1, skal den lægge 26 til istedet for 1, osv.)
Avatar billede farving Nybegynder
14. juli 2006 - 16:55 #1
Jeg kigger på det :)

Du kan "altid" re-assigne værdier :)

Mvh Carsten
Avatar billede rane Nybegynder
14. juli 2006 - 17:09 #2
Har faktisk fundet en slags løsning på det første...men bonus spørgsmålet mangler. Vil gerne have at alle radiobutton værdier (1,2 og 3) bliver erstattet af tallet 26 og talt sammen sådan.  Checkboxen (værdi: 4) skal erstattes af tallet 5.

Min kode ser således ud nu:
<script>
var button1 = 0;
var button2 = 0;
var button3 = 0;
var button4 = 0;
var button5 = 0;

function calculate(a)
{
    if(a.name.indexOf("#1#") > 0)
        button1 = parseInt(a.value);
    else if(a.name.indexOf("#2#") > 0)
        button2 = parseInt(a.value);
    else if(a.name.indexOf("#3#") > 0)
        button3 = parseInt(a.value);
    else if(a.name.indexOf("#4#") > 0)
        button4 = parseInt(a.value);
    else if(a.name.indexOf("#5#") > 0)
        button5 = parseInt(a.value);
   
    document.frokostformular.textfield.value = button1 + button2 + button3 + button4 + button5 ;
}
</script>

----
<tr>
        <td>mandag</td>
        <td></td>
        <td><input type="radio" name="04-09-2006#1#" value="1" onClick="calculate(this)" /></td>
        <td><input type="radio" name="04-09-2006#1#" value="2" onClick="calculate(this)" /></td>
        <td><input type="radio" name="04-09-2006#1#" value="3" onClick="calculate(this)" /></td>
        <td><input type="checkbox" name="04-09-2006XL" value="4" /></td>
    </tr>
    <tr>
        <td>tirsdag</td>
        <td></td>
        <td><input type="radio" name="05-09-2006#2#" value="1" onClick="calculate(this)" /></td>
        <td><input type="radio" name="05-09-2006#2#" value="2" onClick="calculate(this)" /></td>
        <td><input type="radio" name="05-09-2006#2#" value="3" onClick="calculate(this)" /></td>
        <td><input type="checkbox" name="05-09-2006XL" value="4" /></td>
    </tr>
    <tr>
        <td>onsdag</td>
        <td></td>
        <td><input type="radio" name="06-09-2006#3#" value="1" onClick="calculate(this)" /></td>
        <td><input type="radio" name="06-09-2006#3#" value="2" onClick="calculate(this)" /></td>
        <td><input type="radio" name="06-09-2006#3#" value="3" onClick="calculate(this)" /></td>
        <td><input type="checkbox" name="06-09-2006XL" value="4" /></td>
    </tr>
    <tr>
        <td>torsdag</td>
        <td></td>
        <td><input type="radio" name="07-09-2006#4#" value="1" onClick="calculate(this)" /></td>
        <td><input type="radio" name="07-09-2006#4#" value="2" onClick="calculate(this)" /></td>
        <td><input type="radio" name="07-09-2006#4#" value="3" onClick="calculate(this)" /></td>
        <td><input type="checkbox" name="07-09-2006XL" value="4" /></td>
    </tr>
    <tr>
        <td>fredag</td>
        <td></td>
        <td><input type="radio" name="08-09-2006#5#" value="1" onClick="calculate(this)" /></td>
        <td><input type="radio" name="08-09-2006#5#" value="2" onClick="calculate(this)" /></td>
        <td><input type="radio" name="08-09-2006#5#" value="3" onClick="calculate(this)" /></td>
        <td><input type="checkbox" name="08-09-2006XL" value="4" /></td>
    </tr>


<input type="text" name="textfield">
Avatar billede farving Nybegynder
14. juli 2006 - 17:13 #3
if (button1 == 1) {
button1 = ny værdi
}
else if (button1 == 2) {
button1 = ny værdi
}

osv?

Mvh Carsten
Avatar billede farving Nybegynder
14. juli 2006 - 17:14 #4
eller du kan nok lave en switch eller funktion til at ændre det...

Mvh Carsten
Avatar billede rane Nybegynder
14. juli 2006 - 18:32 #5
If sætningerne kan jeg godt finde ud af, men jo det ville være mere praktisk med en funktion af en art. Kan du være behjælpelig med det mon?
Avatar billede farving Nybegynder
14. juli 2006 - 20:18 #6
hvis du kalder denne funktion så vil den, hvis value er 1 retunere en værdi (den kan du self ændre), hvis value er 2 retunere en anden værdi, og ved value retunere en 3. værdi...

function ReNum(num) {
var Value
    switch(num) {
        case 1: Value = 26;
        break;
        case 2: Value = 52;
        break;
        case 3: Value = 78;
        break;
        default: Value = "";
    }
return Value
}
Avatar billede rane Nybegynder
17. juli 2006 - 15:01 #7
Ka ik helt få det til at virke med checkboxen...det virker fint med radiobuttons, men hvordan dælen kan jeg få funktionen til at plusse med 5 hver gang jeg klikker på en checkbox også?
Avatar billede rane Nybegynder
17. juli 2006 - 15:06 #8
Måske mere avanceret?  Hvis jeg unchecker checkboxen skal den jo så minusse de 5 den allerede har lagt til. Og hvis brugeren til at starte med, vælger checkboxen og derefter en af radiobuttons...så bliver 31 (en ret + 5kr for XL) erstattet af 26 igen. Det er sgu tricky stuff det her...
Avatar billede rane Nybegynder
19. juli 2006 - 09:37 #9
Læg lige et svar, farving.  Jeg opretter lige et ekstra relateret spørgsmål :-)
Avatar billede farving Nybegynder
21. juli 2006 - 14:35 #10
okay, ja det blev lidt avanceret, men burde ikke være så umuligt at løse... :)

Mvh Carsten
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