javascript form validator
ik probeer mijn formulier via javascript te valideren voordat het wordt gesubmit, maar ik kan nu wel checken of vereiste velden leeg zijn, maar niet of een ander veld een bepaalde waarde heeft meegekregen.
kan dat kloppen?
code:
Code (php)
1
2
3
4
2
3
4
<form method="post" name="newticket" onsubmit="return ValidateForm(this)">
<tr><th colspan="99">Bezorgwijze</th></tr>
<tr><td><? tooltip("Bezorgwijze","bezorgwijze");?></td><td><label><input class="nothing" checked="checked" type="radio" name="nos_bezorg" value="afhalen" /><? tooltip("Afhalen","afhalen");?></label><br /><label><input class="nothing" type="radio" name="nos_bezorg" value="opsturen" /><? tooltip("Opsturen","opsturen");?></label></td></tr>
</form>
<tr><th colspan="99">Bezorgwijze</th></tr>
<tr><td><? tooltip("Bezorgwijze","bezorgwijze");?></td><td><label><input class="nothing" checked="checked" type="radio" name="nos_bezorg" value="afhalen" /><? tooltip("Afhalen","afhalen");?></label><br /><label><input class="nothing" type="radio" name="nos_bezorg" value="opsturen" /><? tooltip("Opsturen","opsturen");?></label></td></tr>
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function ValidateForm(frm) {
switch(frm.name){
case "newticket":
if (frm.nos_naam.value=="" || frm.nos_telefoon=="" || frm.nos_email=="") {
alert("U heeft niet alle verplichte velden ingevuld.\nZonder deze verplichte velden kan het formulier niet verzonden worden.");
return false;
}
if (frm.nos_bezorg.value=="opsturen") {
alert("Opsturen");
return false;
}
break;
}
}
switch(frm.name){
case "newticket":
if (frm.nos_naam.value=="" || frm.nos_telefoon=="" || frm.nos_email=="") {
alert("U heeft niet alle verplichte velden ingevuld.\nZonder deze verplichte velden kan het formulier niet verzonden worden.");
return false;
}
if (frm.nos_bezorg.value=="opsturen") {
alert("Opsturen");
return false;
}
break;
}
}
ik hoop dat het duidelijk is zo, ik heb even een paar stukjes code geknipt.
kortom: als het formulier "newticket" heet en de bezorgwijze opsturen is, moet er een alert komen.
suggesties?
LiveValidation eens.
Probeer Het is namelijk zo, adres is geen verplicht veld, maar wel as je voor opsturen kiest.
Iemand anders enig idee voor de IF statement voor:
IF bezorg=="opsturen" AND adres="" OR plaats==""
ik ben namelijk niet zo ervaren met javascript
Het scripten wordt daardoor een stuk makkelijker en kortere code. Er zijn zeer veel voorbeelden en plugins te vinden voor deze libraries.
Bijv deze: http://malsup.com/jquery/form/
heb nu de volgende constructie:
Code (php)
1
<form method="post" name="newticket" onsubmit="return get_radio_value(); return ValidateForm(this)">
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
function ValidateForm(frm) {
switch(frm.name){
case "newticket":
if (frm.nos_naam.value=="" || frm.nos_telefoon=="" || frm.nos_email=="") {
alert("U heeft niet alle verplichte velden ingevuld.\nZonder deze verplichte velden kan het formulier niet verzonden worden.");
return false;
}
else if (rad_val=="opsturen") {
alert("Opsturen");
return false;
}
break;
}
}
switch(frm.name){
case "newticket":
if (frm.nos_naam.value=="" || frm.nos_telefoon=="" || frm.nos_email=="") {
alert("U heeft niet alle verplichte velden ingevuld.\nZonder deze verplichte velden kan het formulier niet verzonden worden.");
return false;
}
else if (rad_val=="opsturen") {
alert("Opsturen");
return false;
}
break;
}
}
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
function get_radio_value()
{
for (var i=0; i < document.newticket.nos_bezorg.length; i++)
{
if (document.newticket.nos_bezorg[i].checked)
{
var rad_val = document.newticket.nos_bezorg[i].value;
}
}
}
{
for (var i=0; i < document.newticket.nos_bezorg.length; i++)
{
if (document.newticket.nos_bezorg[i].checked)
{
var rad_val = document.newticket.nos_bezorg[i].value;
}
}
}
maar ook dit blijkt niet te werken, ik zie door de bomen het bos niet meer! suggesties?
ook jquery had ik al gevonden, maar dat is niet waar ik naar op zoek ben. ik heb het liefst gewoon zelf geschreven code zodat ik er ook nog wat van leer, aangezien mijn ervaring met JS niet zo groot is.
Gewijzigd op 01/01/1970 01:00:00 door Gerard Nijboer
Niek schreef op 18.05.2009 22:30:
Ik heb er eerlijk gezegd niet goed naar gekeken. Maar wel even een advies. Gebruik jQuery
Inderdaad, zeker omdat je nu document.form.input1 (weetikveel, zeg maar wat, maar wel iets in die trant) doet, dat is slecht, dat moet je niet doen. Je moet bijvoorbeeld gebruik maken van document.getElementById ( https://developer.mozilla.org/En/Document.getElementById )
Waar ik op dit moment nogal mee zit is de waarde van de geselecteerde radio button, die moet ik testen. Is daar niet iets simpels op te verzinnen?
Ik kom er ook net achter dat mijn 2e validatie niet meer werkt:
Code (php)
1
<form method="post" name="newticket" onsubmit="get_radio_value(); return ValidateForm(this)">
Mag dat niet zo?
===OPGELOST===
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function ValidateForm(frm) {
for (var i=0; i < document.newticket.nos_bezorg.length; i++)
{
if (document.newticket.nos_bezorg[i].checked)
{
var rad_val = document.newticket.nos_bezorg[i].value;
}
}
switch(frm.name){
case "newticket":
if (frm.nos_naam.value=="" || frm.nos_telefoon=="" || frm.nos_email=="") {
alert("U heeft niet alle verplichte velden ingevuld.\nZonder deze verplichte velden kan het formulier niet verzonden worden.");
return false;
}
else if (rad_val=="opsturen") {
alert("Opsturen");
return false;
}
break;
}
}
for (var i=0; i < document.newticket.nos_bezorg.length; i++)
{
if (document.newticket.nos_bezorg[i].checked)
{
var rad_val = document.newticket.nos_bezorg[i].value;
}
}
switch(frm.name){
case "newticket":
if (frm.nos_naam.value=="" || frm.nos_telefoon=="" || frm.nos_email=="") {
alert("U heeft niet alle verplichte velden ingevuld.\nZonder deze verplichte velden kan het formulier niet verzonden worden.");
return false;
}
else if (rad_val=="opsturen") {
alert("Opsturen");
return false;
}
break;
}
}
Gewijzigd op 01/01/1970 01:00:00 door Gerard Nijboer