If checkbox unchecked > niet verzenden
Hoe kan je zorgen dat als je een formulier hebt en mensen moeten VERPLICHT een checkbox aanchecken dat anders het formulier niet verzend.
Dus: checkbox unchecked > submit disable /// checkbox checked > submit enable
Dus: checkbox unchecked > submit disable /// checkbox checked > submit enable
Gesponsorde koppelingen:
Helaas, dit bedoel ik niet.
Ik bedoel dat je niet op submit kan klikken als een checkbox niet is ingevuld (algemene voorwaarden)
Ik bedoel dat je niet op submit kan klikken als een checkbox niet is ingevuld (algemene voorwaarden)
Wat Gerhard geeft is volgens mij in php, dus serverside. Dat betekent dat je wel het formulier verstuurt, maar dan op de server controleert of die checkbox wel of niet aangevinkt is. Volgens mij niet helemaal wat je wilt.
Als je het client side wil doen zal je dus met javascript aan de slag moeten. In JQuery (als je dat gebruikt) kan het vrij simpel:
Als je het client side wil doen zal je dus met javascript aan de slag moeten. In JQuery (als je dat gebruikt) kan het vrij simpel:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$("#button_id").click(function(e){
e.preventDefault();
if ($("#checkbox_id").is(":checked")){
$("#form_id").submit();
}
});
e.preventDefault();
if ($("#checkbox_id").is(":checked")){
$("#form_id").submit();
}
});
Gewijzigd op 25/01/2012 17:28:56 door Erwin H
en wat ik voorstel, is dat je beide doet.
Javascript kan door de gebruiker omzeild worden. Bijvoorbeeld simpelweg door javascript te desactiveren.
Telkens wanneer je met javascript een formulier valideert, moet je die validatie ook doen op server-side
Javascript kan door de gebruiker omzeild worden. Bijvoorbeeld simpelweg door javascript te desactiveren.
Telkens wanneer je met javascript een formulier valideert, moet je die validatie ook doen op server-side
Met verzenden doe ik al, alleen het is makkelijker voor de user om te zien dat je de voorwaarden verplicht moet aanklikken.
Alleen Erwin jouw script werkt niet, Dreamweaver geeft fout.

Toevoeging op 25/01/2012 16:53:59:
Hmm die fout had ik zelf ook kunnen zien haa
Toevoeging op 25/01/2012 16:55:41:
Alleen nu werkt ie nog niet, er is niets anders....
ID's wel aangepast.
Alleen Erwin jouw script werkt niet, Dreamweaver geeft fout.

Toevoeging op 25/01/2012 16:53:59:
Hmm die fout had ik zelf ook kunnen zien haa
Toevoeging op 25/01/2012 16:55:41:
Alleen nu werkt ie nog niet, er is niets anders....
ID's wel aangepast.
je gebruikt JQuery (met andere woorden, je linkt ook een JQuery script)?
werkt perfect, hoor.
(er was een " te kort bij Erwin. Verder werkt dit.)
(er was een " te kort bij Erwin. Verder werkt dit.)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script>
$(function() {
$("#button_id").click(function(e){
e.preventDefault();
if ($("#checkbox_id").is(":checked")){
$("#form_id").submit();
}
});
});
</script>
</head>
<body>
<form id="form_id" action="test.php" method="post">
<input id="checkbox_id" type="checkbox" name="accept_terms"/> ik aanvaard... <br/>
<input id="button_id" type="submit"/>
</form>
</body>
</html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script>
$(function() {
$("#button_id").click(function(e){
e.preventDefault();
if ($("#checkbox_id").is(":checked")){
$("#form_id").submit();
}
});
});
</script>
</head>
<body>
<form id="form_id" action="test.php" method="post">
<input id="checkbox_id" type="checkbox" name="accept_terms"/> ik aanvaard... <br/>
<input id="button_id" type="submit"/>
</form>
</body>
</html>
Gewijzigd op 25/01/2012 17:24:35 door Kris Peeters
Kris Peeters op 25/01/2012 17:23:18:
werkt perfect, hoor.
(er was een " te kort bij Erwin. Verder werkt dit.)
(er was een " te kort bij Erwin. Verder werkt dit.)
Je hebt gelijk, " miste na de checkbox_id. Dank voor de opmerking.
Thanks!
JS is zeker niet mijn sterkste punt haa (working on it).
JS is zeker niet mijn sterkste punt haa (working on it).
Je kunt in HTML5 ook het attribuut required="required" toevoegen aan je checkbox.
Als je dit alvast integreerd is je website in ieder geval klaar voor de toekomst. (het werkt namelijk nog niet in alle browsers!)
Als je dit alvast integreerd is je website in ieder geval klaar voor de toekomst. (het werkt namelijk nog niet in alle browsers!)



