Avatar billede tigerdyr Nybegynder
24. marts 2000 - 11:21 Der er 8 kommentarer og
1 løsning

beholde markerede knapper efter tjek.

Det lyder sikkert sort, men hvis det kan lade sig gøre, må det være et ultra nemt spørgsmål...

Jeg har en helvedes masse Radio buttons, som jeg tjekker om alle er markeret, hvis en eller flere af dem fejler, så udskriver jeg en alert og brugeren skal selvfølgelig så markere de(n) sidste inden det kan submit'es...

Men når jeg udfører mit tjek og det fejler, fjerner den markeringen af de radio knapper som brugeren allerede har markeret... Kan det ikke laves (UDEN COOCKIES) sådan at de allerede besvarede radio knapper, beholder deres markerede værdi ???

En ret forkortet stump kode, ser sådan ud:

<HTML>
<HEAD>
<TITLE>
Lets test
</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
var godkendt = true;
ok = new Array(2);

function Check()
{
  for (i=0; i<Formular.Group01.length; i++)
  {
    if (Formular.Group01[i].checked)
    {
      ok[0] = true;
    }
  }

  for (i=0; i<Formular.Group02.length; i++)
  {
    if (Formular.Group02[i].checked)
    {
      ok[1] = true;
    }
  }

  for (i=0;i<2;i++)
  {
    if (ok[i] != true)
    {
      godkendt = false;
    }
  }
 
  if (godkendt != true)
  {
    alert("Ikke alle er besvaret");
  }
};
</SCRIPT>

<FORM NAME="Formular" OnSubmit="Check()">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="First">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="Second">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="Third">
<BR>
<INPUT TYPE="RADIO" NAME="Group02" VALUE="First">
<INPUT TYPE="RADIO" NAME="Group02" VALUE="Second">
<INPUT TYPE="RADIO" NAME="Group02" VALUE="Third">
<BR>
<INPUT TYPE="SUBMIT" VALUE="Submit">
<INPUT TYPE="RESET" VALUE="Reset">
</FORM>
</BODY>
</HTML>

Hvis du markerer en radio knap i øverste række, og submit'er kommer advarslen om at alle ikke er besvaret, siden vises igen, men den knap du markerede er ikke længere markeret!

Så spørgsmålet er, hvordan pokker kan jeg få den til at blive ved med at være markeret, også efter et tjek ??
Avatar billede tigerdyr Nybegynder
24. marts 2000 - 11:22 #1
Jeg har 89 forskellige grupper af Radio buttons, så det er ret vigtigt for mine brugere, at de knapper de har besvaret ikke slettes fordi de har glemt 1. :o)

Håber det lyder nogen lunde forståligt!
Avatar billede shaba Nybegynder
24. marts 2000 - 15:07 #2
<HTML>
<HEAD>
<TITLE>
Lets test
</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
var godkendt = true;
ok = new Array(2);

function Check()
{
  for (i=0; i<Formular.Group01.length; i++)
  {
    if (Formular.Group01[i].checked)
    {
      ok[0] = true;
    }
  }

  for (i=0; i<Formular.Group02.length; i++)
  {
    if (Formular.Group02[i].checked)
    {
      ok[1] = true;
    }
  }

  for (i=0;i<2;i++)
  {
    if (ok[i] != true)
    {
      godkendt = false;
    }
  }
 
  if (godkendt != true)
  {
    alert("Ikke alle er besvaret");
    return false;
  }
};
</SCRIPT>

<FORM NAME="Formular" OnSubmit="return Check()">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="First">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="Second">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="Third">
<BR>
<INPUT TYPE="RADIO" NAME="Group02" VALUE="First">
<INPUT TYPE="RADIO" NAME="Group02" VALUE="Second">
<INPUT TYPE="RADIO" NAME="Group02" VALUE="Third">
<BR>
<INPUT TYPE="SUBMIT" VALUE="Submit">
<INPUT TYPE="RESET" VALUE="Reset">
</FORM>
</BODY>
</HTML>
Avatar billede shaba Nybegynder
24. marts 2000 - 15:09 #3
Hov, det virker jo ikke så fedt :)

Jeg prøver lige at kigge lidt mere på det :)
Avatar billede shaba Nybegynder
24. marts 2000 - 15:14 #4
<HTML>
<HEAD>
<TITLE>
Lets test
</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
var godkendt = true;
ok = new Array(2);

function Check()
{
  for (i=0; i<Formular.Group01.length; i++)
  {
    if (Formular.Group01[i].checked)
    {
      ok[0] = true;
    }
  }

  for (i=0; i<Formular.Group02.length; i++)
  {
    if (Formular.Group02[i].checked)
    {
      ok[1] = true;
    }
  }

  for (i=0;i<2;i++)
  {
    if (ok[i] != true)
    {
      godkendt = false;
    }
    else
    {
      godkendt = true;
    }
  }
 
  if (godkendt != true)
  {
    alert("Ikke alle er besvaret");
    return false;
  }
};
</SCRIPT>

<FORM NAME="Formular" OnSubmit="return Check()">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="First">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="Second">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="Third">
<BR>
<INPUT TYPE="RADIO" NAME="Group02" VALUE="First">
<INPUT TYPE="RADIO" NAME="Group02" VALUE="Second">
<INPUT TYPE="RADIO" NAME="Group02" VALUE="Third">
<BR>
<INPUT TYPE="SUBMIT" VALUE="Submit">
<INPUT TYPE="RESET" VALUE="Reset">
</FORM>
</BODY>
</HTML>
Avatar billede olebole Juniormester
24. marts 2000 - 21:43 #5
<ole>
Radiobuttons kan være en pine i røven at checke på gruppe-navn, hvis det skal funke X-browser + X-platform. Denne metode er derimod ret sikker:

<HTML>
<HEAD>
<TITLE>
Lets test
</TITLE>

<SCRIPT LANGUAGE="JavaScript"><!--
numGroups = 2;
ok = new Array(numGroups);

function setOK(inx) {
    ok[inx-1] = true;
}
function resetOK() {
    for (i=0; i<ok.length; i++) {
        ok[i] = "";
    }
}
function Check() {
    for (i=0;i<ok.length;i++) {
        if (ok[i] != true) {
            alert("Ikke alle er besvaret");
        return false;
        }
    }
    document.Formular.submit();
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="Formular">
<INPUT TYPE="RADIO" NAME="Group01" VALUE="First" onclick=setOK('1');>
<INPUT TYPE="RADIO" NAME="Group01" VALUE="Second" onclick=setOK('1');>
<INPUT TYPE="RADIO" NAME="Group01" VALUE="Third" onclick=setOK('1');>
<BR>
<INPUT TYPE="RADIO" NAME="Group02" VALUE="First" onclick=setOK('2');>
<INPUT TYPE="RADIO" NAME="Group02" VALUE="Second" onclick=setOK('2');>
<INPUT TYPE="RADIO" NAME="Group02" VALUE="Third" onclick=setOK('2');>
<BR>
<INPUT TYPE="BUTTON" VALUE="Submit" onclick="Check();">
<INPUT TYPE="RESET" VALUE="Reset" onclick=resetOK();>
</FORM>
</BODY>
</HTML>

Her opretter du et array med lige så mange pladser, som du har radio-grupper.
Når du klikker en radio, sætter du samtidigt dens tilhørende plads i array'et til 'true'.
Når du klikker 'submit', checker du, om alle array'ets pladser er 'true'. Hvis ikke, får du en alert. Hvis derimod alle grupper er 'cheked', submit'er formen.
Ved 'reset', reset'er du samtidigt array'et.

/VH
</bole>
Avatar billede tigerdyr Nybegynder
25. marts 2000 - 12:30 #6
Jeg skal lige have tjekket det, men når det nok ikke før mandag!

Vender tilbage hurtigst muligt!
Avatar billede tigerdyr Nybegynder
26. marts 2000 - 20:59 #7
>> Shaba, dit svar er afvist fordi det kun virker med den første knap...

>> Olebole, takker du må være tankelæser, det fungerer præcist som jeg ville have det til :o))
Fik lige lagt lidt flere point til, det er trods alt fortjent, for en god løsning på mit problem.
Godt nok, kommer jeg til at have nogle "skønhedsfejl" i min endelige kode, da mine knapper "springer" i numrerne, eg. 01, 02, 03, 04, 05, 09, 20, 21 osv., men det virker!!

Tak!

/Tigerdyr
Avatar billede olebole Juniormester
27. marts 2000 - 02:09 #8
Min 7 årige datters Alter Ego er Tigerdyret fra Peter Plyds - så hvis ikke en far til et tigerdyr skulle kunne læse et tigerdyrs tanker...?!?
Rart, du kunne bruge min løsning ;-)
Avatar billede tigerdyr Nybegynder
27. marts 2000 - 11:52 #9
*hehe* okay, på den måde :o)))

klart det er den (så tæt på som muligt) perfekte løsning, lige efter mine tanker og ideer!
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