Toon posts:

JS met submitcheck radiobutt. prob.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste tweakers,

voor een klant maat ik een bestelform. met een onSubmit="CheckForm()" validation... Met alle textfields lukte dit prima maar nu heb ik een radio button (voor de leverings voorwaarden) dit is er maar 1 met ja... dus geen keuze uit ja of nee... deze heeft de volgende code
code:
1
<input name="Voorwaarden" type="radio" value="Ja!">


in mijn JS staat het volgende:
code:
1
2
3
4
5
6
7
  {
  if (document.mailForm.Voorwaarden.value=="")
   {
     alert("U bent niet akkoord gegaan met de Grand Diva leverings voorwaarden! 
Wilt u dit als nog doen vink dan het vakje ja aan!");
     event.returnValue=false;
return;


Echter leest hij hier over heen en slaat dus de radiobutton over. De textfields checked hij wel. Is er iets wat ik niet weet over JS dat je radiobuttons anders moet aanspreken?

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
zou je het niet kunnen doen met een

document.forms['mailForm'].elements['Voorwaarden'].selected;

en dan een true of een false uitlezen

daarnaast zou ik dit als ik jou was met een <input /> van het type checkbox doen

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

Topicstarter
dus je bedoelt:

code:
1
2
3
4
5
6
7
 {
  if (document.forms['mailForm'].elements['Voorwaarden'].selected; Value=false)
   {
     alert("U bent niet akkoord gegaan met de Grand Diva leverings voorwaarden! 
Wilt u dit als nog doen vink dan het vakje ja aan!");
     event.returnValue=false;
return;


Zal ik ff proberen... ben niet echt bepaald een held nl. met JS.

Verwijderd

Topicstarter
Ik heb nu de volgende code in alle mogelijke manier geprobeerd maar het werkt niet... hij stuurt meteen het form door zonder de validaten (wat hij ook wel eens deed als ik een foutje in de code had)

code nu is"
code:
1
2
3
4
5
6
7
{
  if (document.forms['mailForm'].elements['Voorwaarden'].selected; Value=false;)
   {
     alert("U bent niet akkoord gegaan met de Grand Diva leverings voorwaarden! 
Wilt u dit als nog doen vink dan het vakje ja aan!");
     event.returnValue=false;
return;


moet ik misschien nu overal: document.forms['mailForm']. plaatsen inplaats van : document.mailForm. ?

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

crisp

Devver

Pixelated

radiobuttons:

JavaScript:
1
2
3
4
5
6
7
function chkradio(el) {

  var i = el.length;
  while (i--) if (el[i].checked) return true;
  return false;

}

waarbij het eerste argument dus referereerd naar je input-element - geeft false terug als er geen 1 geselecteerd is.

btw, event.returnValue is IE-only, beter is dit:

HTML:
1
onsubmit="return CheckForm()"

en je functie CheckForm gewoon false of true terug laten geven

[ Voor 24% gewijzigd door crisp op 07-12-2003 15:55 ]

Intentionally left blank


Verwijderd

Topicstarter
hmmmzzz... word beetje ingewikkeld... ben echt al 3 uur aan het worstelen ermee.

crisp... als ik jou code erin zet neem ik aan dat ik ergens moet aangeven welke waarde de radio butt. heeft zodat hij weet welke hij moet checken toch?

ik heb van (el) (voorwaarden) gemaakt toen het niet werkte maar ook dat pakt hij niet... en ook weet ik niet hoe ik tussen jou code een alert kan neerzetten!
wel heb ik op google deze code gevonden die WEL werkte... echter als je daarna radiobutton wel aanvinkt blijft ie de alert message geven en kom je dus niet verder!

code:
1
2
3
4
5
6
7
8
9
10
11
myOption = -1;
for (i=0; i<mailForm.Voorwaarden.length; i++) {
if (mailForm.Voorwaarden[i].checked) {
myOption = i;
}
}
if (myOption == -1) {
alert("U bent niet akkoord gegaan met de Grand Diva leverings voorwaarden! 
Wilt u dit als nog doen vink dan het vakje ja aan!");
return false;
}

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

crisp

Devver

Pixelated

Verwijderd schreef op 07 december 2003 @ 16:33:
hmmmzzz... word beetje ingewikkeld... ben echt al 3 uur aan het worstelen ermee.

crisp... als ik jou code erin zet neem ik aan dat ik ergens moet aangeven welke waarde de radio butt. heeft zodat hij weet welke hij moet checken toch?
[...]
Gewoon als losse functie erin zetten, en dan zoiets doen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
function CheckForm() {

  if (chkradio(document.forms['mailForm'].elements['Voorwaarden']) == false) {

    alert('U bent niet akkoord gegaan met de Grand Diva leverings voorwaarden!\n
           Wilt u dit alsnog doen vink dan het vakje ja aan!'); // op 1 regel
    return false;

  }

}

De value van je radiobutton boeit niet in dit geval (persoonlijk zou ik trouwens een checkbox gebruiken) want je wilt alleen weten of hij aangevinkt is.

Intentionally left blank


  • Skaah
  • Registratie: Juni 2001
  • Niet online
HTML:
1
2
3
4
5
6
7
8
9
<form onsubmit="check(this)">...</form>
<script>

function check(el) {
 if (!el.voorwoorwaarden || !el.voorwaarden.checked)
  return false;
}

</script>


Zou trouwens wel voor een checkbox kiezen. Radio kun je niet weer un-selecten.
Pagina: 1