Avatar billede benhur Nybegynder
23. juni 2008 - 12:28 Der er 11 kommentarer og
1 løsning

Radiobutton value

Hej

Kan det virkelig passe at der ikke er nogen simpel måde at overføre en radiobutton value til en variabel i Javascript?

Jeg har flere sæt radiobuttons som f.eks. denne:
<input type="radio" name="webman2" id="webman2" value="Værdierne i webman er ok" onClick="visSkjul(this,'vis')">Ja
<input type="radio" name="webman2" id="webman2" value="Værdierne i webman er ikke ok" onClick="visSkjul(this,'gem')">Nej

Jeg har på resten af mine form felter hentet værdien ud vha. document.getElementById, men den hjælper ikke meget, da den jo så altid tager den øverste linje.

Generelt er der kun to valgmuligheder ved mine radio knapper, så jeg ved ikke om der er en smart måde at få værdien ud på?
Avatar billede w13 Novice
23. juni 2008 - 12:32 #1
Du må ikke have 2 ens id'er, da disse jo skal være unikke. Du må bare hente værdien ved at referere til deres name ("webman2").

Hvis din form f.eks. har name="form1", så skriver du bare:

document.form1.webman2.value
Avatar billede benhur Nybegynder
23. juni 2008 - 13:07 #2
Det gør vel ikke den store forskel om man henter værdien ud vha. id eller name.. Man ender i samme problem -> ikke en simpel løsning. Efter submit skulle der ske forskellige ting alt afhængig af værdien på webman2, samtidig med at værdien også skal udskrives. Med ovenstående løsning kommer vi ud i at vi har to værdier der så skal tjekkes på og så en ny variabel sættes, hvis ikke jeg tager fejl?
Avatar billede w13 Novice
23. juni 2008 - 13:15 #3
Nej, der er netop stor forskel.

ID er lavet til at kunne henvise til ét særligt element, derfor kan det ikke lægges på 2 forskellige elementer som i dit eksempel.

Name derimod er lavet til det, du behøver. Så når man skriver document.form1.webman2.value skulle man, så vidt jeg ved, meget gerne ende med værdien på det element, der er afkrydset.
Avatar billede benhur Nybegynder
23. juni 2008 - 13:28 #4
Udmærket.

Jeg forsøgt med følgende i min submit funktion: var webman2 = document.formular.webman2.value;

Og så har jeg ændret id på den ene radio knap. Den returnerer dog bare 'undefined'
Avatar billede w13 Novice
23. juni 2008 - 13:30 #5
Hvordan ser dit form-tag ud?
Avatar billede w13 Novice
23. juni 2008 - 13:35 #6
Hmmm, det kan vist godt være, at det ikke er så let i JavaScript. Så må du gøre sådan her:

<input type="radio" name="webman2" id="webman2_1" value="Værdierne i webman er ok" onClick="visSkjul(this,'vis')">Ja
<input type="radio" name="webman2" id="webman2_1" value="Værdierne i webman er ikke ok" onClick="visSkjul(this,'gem')">Nej

Og i java script:

var webman2 = document.getElementById("webman2_1").checked ? document.getElementById("webman2_1").value : document.getElementById("webman2_2").value;
Avatar billede benhur Nybegynder
23. juni 2008 - 13:35 #7
<form name="formular">
Avatar billede benhur Nybegynder
23. juni 2008 - 14:12 #8
Jeg tror bare jeg løser den sådan her i stedet:

    if (document.formular.webman2[0].checked == true){
        var webman2 = "Webmanværdier er ok";
    } else if ( document.formular.webman2[1].checked == true){
        var webman2 = "webmanværdier er ikke ok";
    }

Synes ikke det er optimalt, men det fungerer som det skal.
Avatar billede roenving Novice
23. juni 2008 - 19:02 #9
-- og der er kun løsninger af den type, så det kommer du til at stille dig tilfreds med !-)

PS. I ovenstående tilfælde returnerer .formular.webman2 en collection af radios, hvorfor det ikke giver mening at forsøge at hive en value ud af den !o]
Avatar billede w13 Novice
24. juni 2008 - 10:04 #10
Benhur>> Husk at lukke spørgsmålet ved at oprette et svar og acceptere det.
Avatar billede benhur Nybegynder
24. juni 2008 - 11:47 #11
Tak for hjælpen begge to. Der var ikke en helt simpel måde at gøre det på, så jeg fik sådan set svar på mit spørgsmål :)

w13 du får bare pointene.. Har rigeligt at dele ud af.
Avatar billede w13 Novice
24. juni 2008 - 11:48 #12
Tak for dem så! :)
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