Avatar billede steen-h Mester
01. november 2010 - 19:26 Der er 7 kommentarer og
2 løsninger

value fra 2 radio knapper

Hej

Jeg har 6 radio knapper, 3 med id flyt og 3 med id menu

<input type="radio" id="flyt" value="0" onclick="menuflyt()" >
<input type="radio" id="menu" value="0" onclick="menuflyt()" >
<input type="radio" id="flyt" value="1" onclick="menuflyt()" >
<input type="radio" id="menu" value="1" onclick="menuflyt()" >
<input type="radio" id="flyt" value="2" onclick="menuflyt()" >
<input type="radio" id="menu" value="2" onclick="menuflyt()" >


function menuflyt() { 

if (document.getElementById('menu').checked){
  window.alert(document.getElementById('menu').value);
}
}

denne kode giver kun true når den første menu radio knap vælges.

jeg vil gerne have sådan at når både en menu knap og en flyt knap vælges vil jeg have value fra begge knapper.

Hvordan laves det ?
Avatar billede majbom Novice
01. november 2010 - 19:35 #1
du må ikke have samme id på flere elementer, det skal være unikt - du skal bruge name attributen i stedet...
Avatar billede steen-h Mester
01. november 2010 - 19:59 #2
OK

Jeg udskriver det hele her.

for($i=0;$i<count($menuarray);$i++){

echo "<input type=\"radio\" name=\"flyt\" value=\"".$i."\" onclick=\"menuflyt()\" ><br>";

echo "<input type=\"radio\" name=\"menu\" id=\"menuf\" value=\"".$i."\" onclick=\"menuflyt()\" ><br>";

}

Hvis jeg så kalder menuflyt() med variablerne menuflyt(flyt,".$i.") og menuflyt(menu,".$i.")

Hvordan piller jeg dem så ud i menuflyt functionen

function menuflyt(navn, id) {

  window.alert(navn + ' - '+id);
}
Avatar billede steen-h Mester
01. november 2010 - 20:09 #3
Her er løsningen

onclick=\"menuflyt('menuf','".$menuarray[$i]."')\"

function menuflyt(navn,id) {

window.alert(navn+' ' +id);

}

Tak for hjælpen, læg et svar.
Avatar billede intenz Novice
01. november 2010 - 20:57 #4
Du kan lave det smartere når du skal bruge det samme element som onclick ligger på, med this.

Hvis du i stedet laver din onclick sådan:
<input type="radio" id="flyt" value="0" onclick="menuflyt(this)" >


Kan din funktion se sådan ud:
function menuflyt(e) {
  alert('checked: ' + e.checked);
  alert('navn' + e.navn);
  alert('id' + e.id);
}


'e' attributten vil så indeholde det element funktionen kaldes fra, fordi 'this' var sendt som parameter fra onclick.
Altså i det her tilfælde det samme som du ville kunne hente ud med:
var e = document.getElementById('flyt');

På den måde slipper for for at sende parametre med, så for at identificere det element kaldes kommer fra. Og kan så bare give elementet f.eks. name="flyt" hvis du skal bruge det til noget i funktionen.
Avatar billede intenz Novice
01. november 2010 - 21:01 #5
alert('navn' + e.navn);
skulle så selvfølgelig være:
alert('navn' + e.name);
Avatar billede steen-h Mester
02. november 2010 - 17:01 #6
Tak for kommentaren Intenz, det var lærerigt.

Læg et svar begge to.
Avatar billede intenz Novice
02. november 2010 - 17:06 #7
Kommer her :)
Avatar billede majbom Novice
02. november 2010 - 19:57 #8
og her...
Avatar billede majbom Novice
03. november 2010 - 18:50 #9
tfp :)
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