23. juni 2008 - 12:28Der 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å?
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?
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.
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;
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.
-- 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]
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.