Avatar billede mgade Nybegynder
30. april 2005 - 11:13 Der er 19 kommentarer og
1 løsning

2. tryk på radio unselecter den?

Det må da være forsøgt før?

Jeg har en dynamisk form, hvor man kan vælge (fx) store eller små æbler, bananer, løg og kiwier. Alt med radiobuttons. Hvad nu hvis en spade trykker "store løg" istedet for "store kiwi"? Hvordan får jeg andet tryk på "store løg" til at unselecte alle "løg"? Alternativet er selvfølgelig at resette hele formen, meeen...

På forhånd tak
Avatar billede mjl Nybegynder
30. april 2005 - 11:25 #1
Hvordan ser formen ud?
Avatar billede Slettet bruger
30. april 2005 - 11:30 #2
Er det ikke en javascript løkke der kører du skal have fat i?
Avatar billede mgade Nybegynder
30. april 2005 - 11:34 #3
Formen (fx):
<form method="POST" action="min.asp">
  <table border="1" cellpadding="0" cellspacing="0" width="600">
    <tr>
      <td>store løg<input type="radio" name="R1" value="V1"></td>
      <td>småløg<input type="radio" name="R1" value="V2"></td>
    </tr>
    <tr>
      <td>store kiwi<input type="radio" name="R2" value="V3"></td>
      <td>små kiwi<input type="radio" name="R2" value="V4"></td>
    </tr>
  </table>
  <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>

wicez: muuligvis - min skitse i baghovedet var noget med Hvis checked ved onclick > uncheck?
Avatar billede Slettet bruger
30. april 2005 - 11:41 #4
jep, det kan du jo finde ud af ved en javascript funktion med 1 parameter.
Jeg er helt ny i javascript, så måske du skulle oprette et spørgsmål i dén kategori i stedet.
Avatar billede mgade Nybegynder
30. april 2005 - 11:43 #5
Muuuligvis en god ide :-) Lader den lige stå en times tid. The question, that is.
Avatar billede olebole Juniormester
30. april 2005 - 11:57 #6
<ole>

Så kan du godt spytte din Viagra ud igen. Den behøver vist ikke stå længere  :)

<script type="text/JavaScript">
function setRadio(r) {
    if (r.checked) setTimeout(function(){r.checked=false},100);
}
</script>

store løg<input type="radio" name="R1" value="V1" onmousedown="setRadio(this)">

/mvh
</bole>
Avatar billede mgade Nybegynder
30. april 2005 - 12:04 #7
Bingo!

Rart at set et trygt navn fra gamle dage btw :-)

Smid et svar!
Avatar billede olebole Juniormester
30. april 2005 - 12:11 #8
Hehe ... så vil jeg zq også lige skrive noget, der er lidt mere brugbart:

<script type="text/JavaScript">
function checkRadio(r) {
    if (r.checked) r.setAttribute("isChecked",true);
}
function setRadio(r) {
    if (r.getAttribute("isChecked")) setTimeout(function(){r.checked=false;r.setAttribute("isChecked",null)},10);
}
</script>

store løg<input type="radio" name="R1" value="V1" onmousedown="checkRadio(this)" onclick="setRadio(this)">

- den er lidt mere sikker  ;o)
Avatar billede mgade Nybegynder
30. april 2005 - 12:13 #9
Det første virkede ellers OK. Men jeg tager dit ord for det :-)
Avatar billede olebole Juniormester
30. april 2005 - 12:15 #10
Ja, den første virker fint, hvis man klikker lidt hurtigt - men holder du musen nede i 1/2 sekund, går det galt  :)
Avatar billede olebole Juniormester
30. april 2005 - 12:16 #11
- og jeg takker naturligvis behørigt for pointene  ;o)
Avatar billede mgade Nybegynder
30. april 2005 - 12:27 #12
He, Jeg kan sq ikk få 2-eren til at virke. Jeg har leget med 10 / 100 og både onmousedown og onclick - modarbejdr de ikke hinanden som de står nu?
Avatar billede olebole Juniormester
30. april 2005 - 12:32 #13
Du har ret ... et øjeblik  :)
Avatar billede olebole Juniormester
30. april 2005 - 12:37 #14
Hmmm ... det funker helt fint i IE og Moz, men Opera er som sædvanligt buggy  :o|
Finder jeg en workaround - eller en helt anden metode - smider jeg den til dig i løbet af dagen. Har lidt småtravlt  :)
Avatar billede mgade Nybegynder
30. april 2005 - 12:38 #15
Fint - hmm, jeg bruger IE, så det er måske mig selv - melder hvis jeg løser det. Tak anyway, jeg anser problemet for løst !
Avatar billede mgade Nybegynder
30. april 2005 - 12:44 #16
Sorry - nu virker det også hos mig. Jeg gik tilbage til version 1 og frem igen til 2-eren, and voila! Jeg ved ikke lige hvad jeg kiksede første gang. GODT man ikke er en computer, så var man blevet kasseret :-) Tak igen!
Avatar billede olebole Juniormester
30. april 2005 - 13:06 #17
Det var så lidt ... jeg kunne nu heller ikke få¨min test til at kikse i andet end Opera, så jeg var lige lidt forvirret  :)

Hvad Opera angår, så viser det sig, man ikke kan sætte en boolsk værdi som:
  r.setAttribute("minVar" true);
- og spørge til den med:
  if (r.getAttribute("minVar")) alert("Den var true");
- eller:
  if (r.getAttribute("minVar")==true) alert("Den var true");

Man bliver nødt til at spørge på en streng - da en boolsk værdi ikke bliver sat som boolsk - men som en streng  :o|
Altså:
  if (r.getAttribute("minVar")=="true") alert("Den var true");

... Skod-bruser ...!!! Scriptet skal altså se sådan ud:

<script type="text/JavaScript">
function checkRadio(r) {
    if (r.checked) r.setAttribute("isChecked","true");
}
function setRadio(r) {
    if (r.getAttribute("isChecked")=="true") setTimeout(function(){r.checked=false;r.setAttribute("isChecked",null)},10);
}
</script>

For en sikkerheds (og de begavede browseres) skyld sætter jeg nu også værdien som en streng:
  r.setAttribute("isChecked","true");

Nu funker det i IE, Moz og Opera ... så burde det også funke i de fleste andre  :)
Avatar billede olebole Juniormester
30. april 2005 - 13:07 #18
... nu anser også jeg problemet for løst  ;o)
Avatar billede mgade Nybegynder
30. april 2005 - 18:04 #19
Med sindsro! Merci beaucoup!
Avatar billede olebole Juniormester
30. april 2005 - 18:40 #20
Selvtak  ;o)
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