Avatar billede john1 Juniormester
04. marts 2004 - 22:12 Der er 39 kommentarer

Checkbox med forskellig value

<form>
<input type="hidden" value="nej" name="checkbox">
Kryds af: <input type="checkbox" name="xxx" onClick="if (this.checked) this.form.checkbox.value = 'ja'; else this.form.checkbox.value = 'nej';">
</form>

Jeg har et problem med dette script. Meningen er at hvis jeg afkrydeser checkboxen så bruger den value=ja hvis checkboxen ikke er afkrydset er value = nej. Hvorfor virker det ikke?
Avatar billede o-zone Nybegynder
04. marts 2004 - 22:23 #1
Det er ikke lykkedes mig ikke at få det til at virke, som det står beskrevet(?).
Men generelt, så er det en skidt ide at bruge reserverede ord som f.eks. "checkbox" til navne. Du bør også altid ende en event med at returnere true eller false!

prøv engang med:
<form>
<input type="text" value="nej" name="checkb">
Kryds af: <input type="checkbox" name="xxx" onClick="if (this.checked) this.form.checkb.value = 'ja'; else this.form.checkb.value = 'nej'; return true;">
</form>

og se om det ikke hjælper. (men som sagt dit script virker fint hos mig! :-(
Avatar billede o-zone Nybegynder
04. marts 2004 - 22:24 #2
ups :) ... du skal selvfølgelig ændre type="text" til type="hidden" - det var kun til test for om det virkede :)
Avatar billede john1 Juniormester
04. marts 2004 - 22:25 #3
jeg prøver lige
Avatar billede grunken Nybegynder
04. marts 2004 - 22:28 #4
og så lidt mere ligefrem :o)

<input type="checkbox" name="xxx" onClick="this.form.checkb.value =(this.checked)?'ja':'nej'";>
Avatar billede john1 Juniormester
04. marts 2004 - 22:29 #5
mystisk når den sender som bliver det til "on" i stedet for "ja" og "nej"
Avatar billede john1 Juniormester
04. marts 2004 - 22:30 #6
prøver lige igen
Avatar billede john1 Juniormester
04. marts 2004 - 22:33 #7
det er samme problem
Avatar billede o-zone Nybegynder
04. marts 2004 - 22:34 #8
er det xxx eller checkb der bliver til "on"?

grunken>> det er da hverken mere eller mindre ligefremt - det er bare en omskrivning fra "if-else" til "?:;" - det er selvfølgelig lidt mere kompakt, men når alt kommer til alt en smagssag :P~
Avatar billede john1 Juniormester
04. marts 2004 - 22:35 #9
Er der nogle der har andre forslag?
Avatar billede grunken Nybegynder
04. marts 2004 - 22:35 #10
Er det det eneste du har på hele siden ?, eller er der noget mere der måske kunne give komplikationer ?
Avatar billede john1 Juniormester
04. marts 2004 - 22:36 #11
nej det er selve ja og nej der bare bliver til on
Avatar billede john1 Juniormester
04. marts 2004 - 22:36 #12
det er en del af en form
Avatar billede grunken Nybegynder
04. marts 2004 - 22:36 #13
o-zone ganske enige :-)

Jeg omformulere til at jeg syntes at det er pænere :o), men forskellen er den samme :-)
Avatar billede o-zone Nybegynder
04. marts 2004 - 22:37 #14
Hvad browser bruger du? Jeg kan som sagt ikke få det til ikke at virke her? (på IE 6.0 Netscape 6.2 og Opera 6.0) :-O
Avatar billede john1 Juniormester
04. marts 2004 - 22:38 #15
Det virker fint hvis f.eks. value er "ja" hvis boksen er markeret. Problemet er når den skal sende et nej hvis boksen ikke er markeret.
Avatar billede john1 Juniormester
04. marts 2004 - 22:39 #16
jeg bruger IE 6.0
Avatar billede john1 Juniormester
04. marts 2004 - 22:41 #17
Kan man kun lave en checkbox men kun 1 værdi?
Avatar billede o-zone Nybegynder
04. marts 2004 - 22:44 #18
Det var satans ... det virker 100% peachy her (og nu har jeg også testet med en submit!)

Den giver godt nok også en xxx=on når checkboxen er sat, men det er vel ikke noget problem?
Avatar billede o-zone Nybegynder
04. marts 2004 - 22:44 #19
hur? Hvad mener du?
Avatar billede john1 Juniormester
04. marts 2004 - 22:49 #20
altså form'en virker perfekt dog - checkboxen når der er 2 forskellige values
Avatar billede john1 Juniormester
04. marts 2004 - 22:50 #21
<input type="hidden" value="nej" name="checkb">
<input type="checkbox" name="xxx" onClick="this.form.checkb.value =(this.checked)?'ja':'nej'";>
Avatar billede john1 Juniormester
04. marts 2004 - 22:50 #22
hvis jeg bruger den her så får jeg "nej" hver gang
Avatar billede john1 Juniormester
04. marts 2004 - 22:51 #23
men hvordan får jeg den til at give et ja når boksen er markeret???
Avatar billede john1 Juniormester
04. marts 2004 - 22:51 #24
Har snart lavet 1000 forsøg nu!
Avatar billede grunken Nybegynder
04. marts 2004 - 22:55 #25
det lyder godt nok underligt, og jeg er stadig ikke helt sikker på hvad problemet er!

Ovenstående virker 100% i alle browsertype (undtagen din åbenbart :o))

Men har du mulighed for at uploade den form, så vi kan se problemet live ?
Avatar billede john1 Juniormester
04. marts 2004 - 22:57 #26
selve formen sendes til en database når jeg skriver xxx
Avatar billede john1 Juniormester
04. marts 2004 - 22:57 #27
man bare ikke når jeg har et ja og en nej value. Er i med?
Avatar billede john1 Juniormester
04. marts 2004 - 22:59 #28
Det er underligt for man kan jo lave det ved hjælp at radioknapper. Kan man virkeligt ikke gøre det som checkbox?
Avatar billede grunken Nybegynder
04. marts 2004 - 23:04 #29
PAS , jeg er åbenbart for træt til at forstå det lige nu :o)

Men uanset hvad vil "checkb"'s værdi være ja eller nej!
og "xxx"'s værdi vil være enten true eller false :o)

Er det senere hen det går galt ?
Avatar billede john1 Juniormester
04. marts 2004 - 23:08 #30
den fik jeg ikke rigtig.
Avatar billede o-zone Nybegynder
04. marts 2004 - 23:20 #31
Jeg tror at vi begge har opgivet at finde fejl i den stump kode du har vist os - det er simpelthen ikke dér fejlen ligger.

Jeg er ikke helt sikker på hvad du mener når du skriver "selve formen sendes til en database når jeg skriver xxx" - men jeg er også på vej i kanen, så vi må vist se på det i morgen i stedet for! :-/

Hvis du har mere javascript på siden, så er der muligvis noget der konflikter med det du viser os her?

Prøv evt. at gemme disse to filer i samme bibliotek:
---8<-----[test.htm]-----
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>john1 form</title>
    <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1">
</head>

<body>
<form method="GET" action="getParameterViewer.htm">
<input type="hidden" value="nej" name="checkb">
Kryds af: <input type="checkbox" name="xxx" onClick="if (this.checked) this.form.checkb.value = 'ja'; else this.form.checkb.value = 'nej'; return true;">
<input type="submit" value="send">
</form>
</body>
</html>
---8<----------

---8<-----[getParameterViewer.htm]-----
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>parametre overført med GET metoden</title>
    <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1">
</head>

<body>
<center>
<table border=1 cellspacing=0 cellpadding=3>
<tr><td colspan=2 bgcolor=cccccc><b>Parametre overført med GET metoden</b></td></tr>
<script language="javascript" type="text/javascript">
    var tmpArray;
    var origParameter = unescape(location.search.substr(1).replace(/\+/g," "));
    var parametre = origParameter.split(/\&/);
    for (i=0; i<parametre.length; i++){
        tmpArray = parametre[i].split(/\=/);
        if (tmpArray[0] && tmpArray[1]){
            document.write("<tr><td bgcolor='cccccc'>"+tmpArray[0]+"</td><td>"+tmpArray[1]+"</td></tr>\n");
        } else if (tmpArray[0]){
            document.write("<tr><td bgcolor='cccccc'>"+tmpArray[0]+"</td><td>&nbsp;</td></tr>\n");
        }
    }
</script>
</table>

</center>
</body>
</html>
---8<----------
send formen fra test.htm med hhv. checkboxen checked og unchecked, og fortæl mig hvad du ser på getParameterViewer.htm. Det er det jeg bruger til at teste din kode, og i min IE60 (+ alle de andre browsere - øjensynligt også grunkens) virker det som det skal.
Avatar billede john1 Juniormester
04. marts 2004 - 23:25 #32
de sider jeg arbejder med er i cgi ved ikke om det gør en forskel..vi må prøve at se på det i morgen;-)
Avatar billede olebole Juniormester
05. marts 2004 - 10:33 #33
<ole>

Jeg tror, du har misforstået en checkbox' virkemåde. Den må ikke sende sin værdi med, når den ikke er checked. Kun, hvis checkbox'en er krydset af, må den sendes med til serveren.
Derfor er det ganske ligegyldigt, hvad checkbox'ens value er, hvis den ikke er checked, når formen submittes.

/mvh
</bole>
Avatar billede john1 Juniormester
05. marts 2004 - 10:46 #34
Vil det sige man ikke kan sende en værdi med hvis den ikke er checked?
Avatar billede john1 Juniormester
05. marts 2004 - 10:46 #35
Og kan det ikke lade sig gøre?
Avatar billede o-zone Nybegynder
05. marts 2004 - 10:49 #36
jo det kan man ... men kun med sådan en workaround som du har lavet (med et hidden field der sættes afhængigt af checkboxen)

Men selve checkboxen sender ingen ting, hvis den er unchecked
Avatar billede olebole Juniormester
05. marts 2004 - 11:20 #37
Når man skal ud i JS-workarounds for den slags ting, er det ofte fordi, man har grebet problemet forkert an fra start. Du har formodentlig en uhensigtsmæssig databehandling i din applikation, men det er ikke til at sige uden at kende projektet i enkeltheder.
/mvh
Avatar billede john1 Juniormester
05. marts 2004 - 11:24 #38
olebole > men jeg takker for svaret:-)
Avatar billede olebole Juniormester
05. marts 2004 - 11:28 #39
... anytime  :)
Din applikation ved formodentlig, hvilke checkbox'e der er oprettet. Så kan du jo - i dit modtage-dokument - blot spørge, om disse er 'on' eller ej.
/mvh
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