[javascript] controle radio

Pagina: 1
Acties:

  • Kanivan
  • Registratie: Januari 2002
  • Laatst online: 09-04-2023
ik heb een code geschreven die controleert of een radioveld is geselecteerd
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var a = 0;
    
    for (i=0, n=form.keuze.length; i<n; i++) 
    {
       if (form.keuze[i].checked) 
    {
    a = 0;
    a = 1;
    break;
        }
    }

    if (a == 0)
    {
    foutmelding += "u heeft niets geselecteerd\n";
    }

de code werkt nu maar in het begin werkte het precies omgekeerd. als iets aangeklikt was dan gaf hij foutmelding aan. toen heb ik a= 1 en a = 0 ongewisseld en toen werkte het... en dat begrijp ik niet, kan iemand mij dat uitleggen?

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

[standaard reply :Z ]

Lees en begrijp eerst je eigen code.

Kijk eens naar deze regels, en bonk even met je hoofd tegen een muurtje |:(
code:
1
2
3
4
5
6
if (form.keuze[i].checked) 
  {
    a = 0;
    a = 1;
    break;
  }

Stop uploading passwords to Github!


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:19

crisp

Devver

Pixelated

Inderdaad, het is gewoon een kwestie van logica.
Als je nu begint met de aanname dat er niets geselecteerd is. Je zet a dus initieel op 1 (fout).
Als je een veld vind dat wel geselecteerd is, dan is er dus aan de voorwaarde vandaan, en kan je a op 0 zetten en uit de loop springen:
code:
1
2
3
4
5
       if (form.keuze[i].checked) 
    {
    a = 0;
    break;
        }

Blijkt na de loop a nog op 1 te staan, dan was er dus niks geselecteerd:
code:
1
2
3
4
if (a == 1)
    {
    foutmelding += "u heeft niets geselecteerd\n";
    }

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Waarom moet je trouwens een radio-veld checken???

Het doel van een Radio is juist dat er altijd maar 1 geselecteerd kan zijn (en dus ook niet 'geen')...

Zet alleen een van de radio's op checked en je bent klaar.

<input type=radio name=radiogroup checked>optie 1<br>
<input type=radio name=radiogroup>optie 2<br>
<input type=radio name=radiogroup>optie 3

  • Kanivan
  • Registratie: Januari 2002
  • Laatst online: 09-04-2023
het probleem van dat je al een antwoord invult is dat als er dan per ongeluk op verzenden wordt geklikt je foutieve gegevens binnenkrijgt. verder is het verstandiger om je respondanten een keuze te laten maken en niet alvast voor hen te kiezen.

en inderdaad moest beter nadenken voor het schrijven van mijn code, maar het doet het wel.... en dat vind ik raar

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

het probleem van dat je al een antwoord invult is dat als er dan per ongeluk op verzenden wordt geklikt je foutieve gegevens binnenkrijgt.
Dat krijg je ook als ze 'per ongeluk' een typfout maken in hun naam.. of 'per ongeluk' het verkeerde hokje aanvinken..

Dat een radiobutton standaard aan is op de meestgebruikte/default waarde is normaal, daar zijn je gebruikers aan gewend en is ook handig, want scheelt de meerderheid een actie.

Komt die studie Interaction Design toch nog eens van pas... maar goed.. de hoop dat mensen eindelijk eens leren hoe form-elementen te gebruiken heb ik al opgegeven..

  • Kanivan
  • Registratie: Januari 2002
  • Laatst online: 09-04-2023
tot op een zekere hoogte ben ik het met je eens dat het handig is om de default/meest gebruikte optie alvast geselecteerd te hebben. maar soms is er geen default of meest gebruikte optie en wat moet je dan als default waarde selecteren? moet je dan de eerste optie pre-geselecteerd hebben zoals bijvoorbeeld bij leeftijdscategorieen? Zijn er leuke artikelen hierover?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Dan heb je nog altijd de dropdown listbox. Daar hoef je geen voorselectie te maken.

In principe is een radio voor 2-3 opties met 1 verplichte mogelijkheid, voorbeeld man/vrouw, ja/nee, klein/normaal/extra..

Bij meerdere gebruik je over het algemeen een dropdown, omdat dat ruimte scheelt.
Pagina: 1