[html+js] radio button check

Pagina: 1
Acties:

  • DPLuS
  • Registratie: April 2000
  • Niet online
Ik krijg het volgende niet correct werkend:

Als de gebruiker op een button klikt, moet er bij onClick gecontroleerd worden of één radio-button geselecteerd is.
Zo ja, dan document.form.submit();, en anders een alert("Niets geselecteerd!");

Dit is de code die ik tot nu toe heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="JavaScript">
function CheckRadio() 
{
      for (var i=0; i < document.formulier.bla.length; i++)
      {
         if (document.formulier.bla[i].checked) 
         { 
            document.formulier.submit();
         }
      }
} 
</script>

</HEAD>

<BODY>

<form name=formulier>
<input type=radio name=bla value=1>Bla
<input type=radio name=bla value=2>Bla
<input type=radio name=bla value=3>Bla
<input type=button onClick="CheckRadio()" value=ok> 
</form>

</BODY>
</HTML>

Waar moet ik nu ergens zetten dat 'ie moet alerten als er niets geselecteerd is?

PS: Het probleem is nl. dat als ik deze code eronder zet:

else {
alert("Niets geselecteerd");
}

bij ieder vakje dat niet geselecteerd is die alert-msg komt...

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03

Engineer

Software

.

[ Voor 100% gewijzigd door Engineer op 13-10-2018 11:42 ]


  • DPLuS
  • Registratie: April 2000
  • Niet online
Omdat het vragen zijn over boeken die kinderen moeten lezen.
Als ze voldoende punten halen, krijgen ze een "leesdiploma"...

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

code:
1
2
3
4
else {
  alert("Niets geselecteerd");
  break;
}

Of binnen de loop alleen een var op true/false zetten en pas na de loop een aktie verbinden aan de waarde (bijv. true=>submit false=>alert)

Today's subliminal thought is:


  • DPLuS
  • Registratie: April 2000
  • Niet online
Dan werkt het nog niet...

Ik geloof dat het iets te maken heeft met die for-loop...

  • DPLuS
  • Registratie: April 2000
  • Niet online
ik heb het nu anders gedaan, en nu werkt het tenminste wel:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="JavaScript">

function CheckRadio() {

    if (document.formulier.bla[0].checked == false && document.formulier.bla[1].checked == false && document.formulier.bla[2].checked == false) {
        alert("Niets ingevuld!");
    }
    else {
        document.formulier.submit();
    }

}

</script>

</HEAD>

<BODY>

<form name=formulier>
<input type=radio name=bla value=1>Bla
<input type=radio name=bla value=2>Bla
<input type=radio name=bla value=3>Bla
<input type=button onClick="CheckRadio()" value=ok> 
</form>

</BODY>
</HTML>

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op zaterdag 11 mei 2002 14:49 schreef DPLuS het volgende:
Dan werkt het nog niet...

Ik geloof dat het iets te maken heeft met die for-loop...
Uhm, nee, heeft er meer mee te maken dat ik nog niet helemaal wakker ben |:(

Dit werkt een stuk beter:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function CheckRadio() 
{
    var check = false;
    for (var i=0; i < document.formulier.bla.length; i++) {
        if (document.formulier.bla[i].checked) {
            check = true;
            break;
        }
    }
    if (check) {
        document.formulier.submit();
    } else {
        alert("Niets ingevuld!");
    }
}

Today's subliminal thought is:


  • DPLuS
  • Registratie: April 2000
  • Niet online
Het scheelt inderdaad iets in typwerk!

Die check=false is een mooie oplossing :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

code:
1
2
3
4
5
6
7
8
9
if (!chkradio(document.formulier.bla)) alert('Voudt!');

function chkradio(id) {

  var checked = false;
  for (var i = 0; i < id.length && !checked; i++) if (id[i].checked) checked = true;
  return checked;

}

Intentionally left blank

Pagina: 1