Hey,

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:

<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>



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;
	}

	}


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?
Probeer LiveValidation eens.
denk dat ik liever de code zelf blijf schrijven omdat ik een iets gecompliceerdere constructie ga maken dan dat hierboven staat.
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
just a thought, kan het er mee te maken hebben dat het een radio button field is? hoe ga ik daar mee om?

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

Ik heb er eerlijk gezegd niet goed naar gekeken. Maar wel even een advies. Gebruik jQuery (of MooTools).
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/
ik ben dr nu achter dat het achterhalen van radio values nogal lastig gaat.

heb nu de volgende constructie:

<form method="post" name="newticket" onsubmit="return get_radio_value(); return ValidateForm(this)">


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;
	}
	}


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;
      }
   }
}


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.
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 )
Mag ik vragen waarom dat slecht is, en waarom ElementId voorkeur heeft?
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:
<form method="post" name="newticket" onsubmit="get_radio_value(); return ValidateForm(this)">


Mag dat niet zo?

===OPGELOST===


<form method="post" name="newticket" onsubmit="return ValidateForm(this)">

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;
	}
	}

Reageren