Avatar billede dalbjerg Nybegynder
18. maj 2004 - 00:22 Der er 11 kommentarer og
1 løsning

variabler, med formlar..

Hej

Jeg har en række input radio buttoms som se således ud:
<form action="default.asp" method="post" name="editor">
<input name="a104_lodret" type="radio" value="top" onclick="uncheck(this.form,'a104-lodret');">
<input name="a104_lodret" type="radio" value="buttom" onclick="uncheck(this.form,'a104-lodret');">

<input name="a110_lodret" type="radio" value="top");">
<input name="a110_lodret" type="radio" value="buttom");">

navnet på dem kender jeg ikke direkte, da de 104 & 110 stammer fra en id i en database, og den er derfor ikke statik. De er altid sådan 2 og 2.

Det har jeg lavet, og det funker også at man kan trykke i den ene eller den anden, og har man markeret den ene, og trykker i den anden så blive den ene fjernet og den anden bliver checked.

Men nu skal jeg så have lavet en funktion hvis man trykker i den som er checked, ja så skal ingen af dem være check. Nogen som har en ide til hvordan jeg kan lave det?

Jeg har selv siddet og bølvet lidt med det, men kan overhovedet ikke for det til makke ret.
Avatar billede olebole Juniormester
18. maj 2004 - 01:01 #1
<ole>

Hvad mener du med "...så blive den ene fjernet..."?

/mvh
</bole>
Avatar billede dalbjerg Nybegynder
19. maj 2004 - 17:05 #2
heh...

Lad os tage et eks.
a104_lodret er markeret, men der det er en radio, kan man ikke bare trykker i a104_lodret for at fjerne markering igen. Det mangler jeg en funktion til
Avatar billede roenving Novice
19. maj 2004 - 17:46 #3
Jeg kan ikke se nogen måder, hvorpå man kan vide om radioen er checket som følge af museklikket eller fordi den var det i forvejen, men man kan jo oprette en variabel, som holder styr på det:

var whichChecked = new Array();

function uncheck(fld){
f = fld.form;
n = fld.name;
if(whichChecked[n]&&whichChecked[n]==fld.value){
  fld.checked=false;
  whichChecked[n] = "";
}else
  whichChecked[n]=fld.value;

/*
Hvad du ellers gør med uncheck-funktionen
*/

}

-- og så skal kaldene se sådan ud:

<input name="a104_lodret" type="radio" value="top" onclick="uncheck(this);">
<input name="a104_lodret" type="radio" value="buttom" onclick="uncheck(this);">
Avatar billede dalbjerg Nybegynder
23. maj 2004 - 18:39 #4
Det funker også men første gang skal man dobbel klikke...
Jeg kører med asp som server sprog, og jeg tænke derpå at jeg måtte kunne lave noget onload i body, men det fejler også totalt.

Jeg må kunne lave en funktion hvor jeg kalder alle dem som jeg ønsker skal være check, har prøvet noget ala dette:

function check() {
<%
strSQL = "SELECT * FROM siderne where ejerid = " & session("ejerid") & " order by titel"
Set rs = conn.Execute(strSQL)
do while not rs.eof
    %>
    uncheck('document.editor.a<%= rs("id") %>_lodret');
    <%
    rs.movenext
loop
%>
}
</script>

Kan du hjælpe mig videre ?
Avatar billede roenving Novice
23. maj 2004 - 18:48 #5
Dobbeltklikke ?-)

Selvfølgelig skal man dobbeltklikke, for ellers er der jo ikke nogen prik at fjerne ...

-- og så lige en væsentlig lille rettelse:

Du kører asp på serveren med vbscript som programmeringssprog ...

-- og selv om din konstruktion er lidt usædvanlig, vil den vel virke i IE ?-)
Avatar billede dalbjerg Nybegynder
23. maj 2004 - 18:56 #6
Jeg har jo lavet sådan at de sider som er checked, fra besøg på siden før, også er checked nu. Og det gør jeg bare ved at lave en checked i den altså
<input name="a104_lodret" checked type="radio" value="top" onclick="uncheck(this);">

Hvis man har sat den checked via dette skal man dobbelklikke... for at få den fjernet. Derfor mangler jeg en function som jeg kan kalde fra onload i body, så den sætter dem checked via javascript, så jeg kan blive fri for at dobbelklikke.
Avatar billede roenving Novice
23. maj 2004 - 19:01 #7
var whichChecked = new Array();

function checkRadios(){
  r = document.getElementsByTagName("INPUT");
  for(i=0;r.length>i;i++)
    if(r[i].type=='radio'&&r[i].checked)
      whichChecked[r[i].name] = r[i].value;
}
Avatar billede dalbjerg Nybegynder
23. maj 2004 - 19:07 #8
hvordan skal den sættes ind?
Avatar billede roenving Novice
23. maj 2004 - 19:09 #9
onload, som du selv foreslog:

<body ... onload="checkRadios()">
Avatar billede dalbjerg Nybegynder
09. august 2004 - 15:09 #10
gider du ikke svare.. så skal jeg for lukket dette spørgsmål...
Avatar billede roenving Novice
09. august 2004 - 15:14 #11
Oki '-)
Avatar billede roenving Novice
17. august 2004 - 13:12 #12
-- og tak for point ;~}
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