formulier validatie

Status
Niet open voor verdere reacties.

50cent_

Gebruiker
Lid geworden
11 jun 2006
Berichten
17
Formulier Validatie. Urgent!!!

hoi allemaal.
Ik ben bezig met een script die al mijn formulieren in een keer kan checken.
Het ging goed totdat ik de regels die in het rood gemarkeerd zijn toevoegde.
Dankzij deze regels checkt de script helemaal niks meer.
De argumenten van de gebruikte functie stellen de niet vereiste velden van het formulier voor.
Er is ook een probleem met de radio knoppen van het geslacht. :confused:
Het lijkt alsof de script alleen maar tekstvelden checked.

Alvast bedankt voor de oplossingen:thumb:


De script:

<SCRIPT>
function checkform(){
filled = true;
for (i=0;i< document.forms[0].elements.length-1;i++)
{
box = document.forms[0].elements;
box.style.backgroundColor="";
box.style.color="";
for (j=0;j < checkform.arguments.length-1;j++)
{

if (!box.value and box.name!=checkform.arguments[j])
{
box.style.backgroundColor="blue";
box.style.color="white";
filled = false;
}
}
}
if (!filled)
{
alert("Het formulier is niet volledig ingevuld")
}
return filled;
}


De formulier:

<FORM method=post onsubmit="return checkform('tvgsl','cellnr')">
<TABLE>
<TR><TD>* Voornaam: </TD><TD><INPUT name=nm> </TD>
<TD>Tussenvoegsel: </TD><TD><INPUT name=tvgsl></TD></TR>
<TR><TD>* Achternaam: </TD><TD><INPUT name=snm> </TD>
<TD>
<INPUT type=radio name=gs value=dhr ><LABEL for=geslacht>dhr. </LABEL>
<INPUT type=radio name=gs value=mevr><LABEL for=geslacht>mevr.</LABEL>
</TD>
</TR>
<TR><TD>* Adres: </TD><TD><INPUT name=adres> </TD></TR>
<TR><TD>* Postcode: </TD><TD><INPUT name=postcode size=6 maxlength=6></TD></TR>
<TR><TD>* Woonplaats: </TD><TD><INPUT name=plaats></TD></TR>
<TR><TD>* Telefoon: </TD><TD><INPUT name=telnr> </TD></TR>
<TR><TD>Mobiel: </TD><TD><INPUT name=cellnr></TD></TR>
<TR><TD>* Email: </TD><TD><INPUT name=email> </TD></TR>
<TR><TD valign=top>* Probleem: </TD>
<TD colspan=4><TEXTAREA name=probleem rows=10 cols=50></TEXTAREA></TD></TR>
<TR><TD colspan=4><INPUT type=submit name=send value=Verzenden></TD></TR>
</TABLE>
</FORM>
 
Laatst bewerkt:
Verander het woordje and door && en alles werkt weer!
(Naar de keuzerondjes moet ik nog even kijken.)
 
probleem nog steeds niet echt opgelost

Bedankt voor de tip. De script checked nou in ieder geval wel.
Maar het slaat nog steeds de niet-vereiste velden niet over.
 
Oké, ik heb even een tijdje geprobeerd en veranderd, maar nu werkt het:

HTML:
<script>
function checkform(){
	filled = true;
	for (i=0; i< document.forms[0].elements.length; i++)
	{
		box = document.forms[0].elements[i];
		box.style.backgroundColor="";
		box.style.color=""; 
		verplicht = true;
		ingevuld = true;
		for (j=0;j < arguments.length;j++)
		{ 
			if (box.name==arguments[j])
			{
				verplicht = false;
			}
		}
		if(verplicht){
			if(!box.value){
				ingevuld = false;
			} else if(box.getAttribute("type") == "radio" && !box.checked) {
				ingevuld = false;
				for (j=0;j< document.forms[0].elements.length;j++)
				{
					if(box.name == document.forms[0].elements[j].name && document.forms[0].elements[j].checked){
						ingevuld = true;
					};
				};
			};
		};
		if(ingevuld == false){
			filled = false;
			box.style.backgroundColor="blue";
			box.style.color="white";
		};
	};
	if (!filled)
	{
		alert("Het formulier is niet volledig ingevuld")
	}
	return filled;
}
</script>
 
bedankt voor de oplossing, nu kan ik in ieder geval verder werken.
ik heb gister nog verder gezocht en het blijkt dat de elementen van een formulier die meerdere keuzes(bijv keuze knoppen en keuze lijsten) bevatten in een array worden opgeslagen. Ik weet er ook niet veel van. Maar als er een standaardnaam is voor deze array. Wil ik dat nog wel hebben. Want ik wil deze script ook voor toekomstige formulieren gebruiken.
 
Waar heb je die informatie vandaan? Dat is bij mij niet bekend.
 
kan me niet meer herinneren. Ik had de site op google gevonden.
Ben eigenlijk meer PHP,MYSQL programmeur dan javascript progammeur
 
Laatst bewerkt:
50cent_ zei:
kan me niet meer herinneren. Ik had de site op google gevonden.
Ben eigenlijk meer PHP,MYSQL programmeur dan javascript progammeur
Ik ook. ;)
Maar vroeger (1 jaar geleden) werkte ik alleen met Javascript i.p.v. PHP.

Maar waarom valideer je het formulier dan niet met PHP?
 
Ik loop nou toevallig tegen een tweede probleem aan. PHP probleem de script die je hebt verzonden werkt wel. Maar de requests horen naar mijn email te worden verzonden. Het lijkt alsof de script niks naar mijn email verzend. Daarvoor nog wel of zal het aan de SMTP server liggen?
 
Dat is raar. Gebruik je gewoon de functie mail()? Test het dan even op een testpagina. Na test wel meteen de pagina verwijderen!

PHP:
<?php
mail("naam@provider", "Testbericht", "Dit is een testbericht om te kijken of het werkt.");
?>

Dit is om te testen of het aan de SMTP server ligt, als het niet aan de SMTP server ligt, kun je hier de code wel even posten.
 
wrm ik niet met PHP valideer. Op dit moment is het niet van zo groot belang dat de validatie script in JS is geschreven. Maar het is vooral bedoelt om server traffic te beperken en ook CPU zo min mogelijk te belasten met de verwerking.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan