Controle

Status
Niet open voor verdere reacties.

hansie1962

Gebruiker
Lid geworden
10 feb 2009
Berichten
63
Goedemorgen,

IK hoop dat iemand mij kan en wil helpen.
Ik heb geen rvaring met javascripts maar loop tegen het volgende probleem aan.
Ik heb een mailformulier en deze invoervelden moeten gecontroleerd worden op inhoud.
In het script weat er nu inzit wordt gecontroleerd op het veld "naam "en email maar deze controle werkt niet. Het formulier wordt gewoon helemaal leeg zonder enige controle verstuurd.
Wat ik graag zou willen is dat alle invoervelden gecontroleerd worden maar ik krijg het niet werkend.
Kan iemand mij helpen?
Onderstaand het stukje code:


Dit staat in de Head:
[js]
<SCRIPT>
function Verif()
{
if (document.forms[0].elements[0].value == ""){
alert("nName field is mandatory.nn" +
"Enter your name.")
document.forms[0].elements[0].focus();
return false;
}

else if (document.forms[0].elements[1].value == ""){
alert("nE-mail field is mandatory.nn" +
"Enter your e-mail address.")
document.forms[0].elements[1].focus();
return false;
}

else if (document.forms[0].elements[1].value.indexOf ('@',0)
== -1 || document.forms[0].elements[1].value.indexOf ('.',0)
== -1){
alert("nAn e-mail address must contain " +
"the characters "@" and ".".nn" +
"Please enter your correct address.")
document.forms[0].elements[1].select();
document.forms[0].elements[1].focus();
return false;
}
else
return true;
}

</SCRIPT>
[/js]

Dit staat in de body
HTML:
<form action="contact.php" method="post" onSubmit="return Verif(this.form)">
			<!-- this hidden input references the file 'exampletemplate.txt' in the main directory of the webfolder -->
			<input type="hidden" name="template" value="exampletemplate" /> 
	<table border="0" cellspacing="1">
		<tr>
			<td width="252"><font face="Arial" size="2">
						Voornaam:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
				</font></td>
			<td>
						<font color="#AEAEAE" face="Tahoma" size="4">
<input type="text" name="Voornaam" size="31"></font></td>
		</tr>
		<tr>
			<td width="252">
						<font face="Arial" size="2">
						Achternaam</font></td>
			<td>
						<font color="#AEAEAE" face="Arial" size="4">
<input type="text" name="Achternaam" size="31"></font></td>
		</tr>
		<tr>
			<td width="252">
						<font face="Arial" size="2">
						E-mailadres</font></td>
			<td>
						<font color="#AEAEAE" face="Arial" size="4">
<input type="text" name="Emailadres" size="31"></font></td>
		</tr>
		<tr>
			<td width="252"><font face="Arial" size="2">Adres</font></td>
			<td>
						<font color="#AEAEAE" face="Arial" size="4">
<input type="text" name="Adres" size="31"></font></td>
		</tr>
		<tr>
			<td width="252">
						<font face="Arial" size="2">
						Postcode</font></td>
			<td>
						<font color="#AEAEAE" face="Arial" size="4">
<input type="text" name="Postcode" size="31"></font></td>
		</tr>
		<tr>
			<td width="252">
						<font face="Arial" size="2">
						Woonplaats</font></td>
			<td>
						<font color="#AEAEAE" face="Arial" size="4">
<input type="text" name="Woonplaats" size="31"></font></td>
		</tr>
		<tr>
			<td width="252">
						<font face="Arial" size="2">
						Telefoonnummer</font></td>
			<td>
						<font color="#AEAEAE" face="Arial" size="4">
<input type="text" name="Telefoonnummer" size="31"></font></td>
		</tr>
		<tr>
			<td width="252">&nbsp;</td>
			<td>&nbsp;</td>
		</tr>
	</table>
	<p>&nbsp;</p>
	</fieldset> <fieldset> <legend>Vraag of opmerking</legend> 
						<textarea name="Bericht" rows="10" title="Typ hier uw vraag of opmerking" style="width: 611px"></textarea> </fieldset> <div id="buttons"> 
		

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp

;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
		<input id="button1" type="submit" value="Verzend bericht" title="Verstuur bovenstaande informatie." /> 
		<input name="Reset" type="reset" id="button2" onclick="valid.reset(); return false" value="Bericht wissen" /> </div> </form>

Mod: Verzoek om tags te gebruiken
 
Laatst bewerkt door een moderator:
Als je dit script wilt gebruiken zal je [js]alert("nAn e-mail address must contain " +
"the characters "@" and ".".nn" +
"Please enter your correct address.")[/js] moeten vervangen door [js]alert("nAn e-mail address must contain " +
"the characters \"@\" and \".\".nn" +
"Please enter your correct address.")[/js]
Je moet de aanhalingstekens om '@' en '.' "escapen" anders wordt de string daar afgebroken en werkt het script niet. Sowieso werkt het script niet goed.
"document.forms[0].elements[0].value" is het eerste veld en dat is je hidden veld ("template"). "document.forms[0].elements[1].value" is je tweede veld ("voornaam").

Ik zou je formulier een naam geven
HTML:
<form name="contactformulier" action="contact.php" method="post" onSubmit="return Verif(this.form)">
Daar kan je dan gebruik van maken in je javascript
[js]<SCRIPT>
function Verif()
{
if (document.contactformulier.Voornaam.value == ""){
alert("nName field is mandatory.nn" +
"Enter your name.")
document.contactformulier.Voornaam.focus();
return false;
}

if (document.contactformulier.Achternaam.value == ""){
alert("nName field is mandatory.nn" +
"Enter your name.")
document.contactformulier.Achternaam.focus();
return false;
}

if (document.contactformulier.Emailadres.value == ""){
alert("nE-mail field is mandatory.nn" +
"Enter your e-mail address.")
document.contactformulier.Emailadres.focus();
return false;
}

if (document.fcontactformulier.Emailadres.value.indexOf ('@',0)
== -1 || document.contactformulier.Emailadres.value.indexOf ('.',0)
== -1){
alert("nAn e-mail address must contain " +
"the characters "@" and ".".nn" +
"Please enter your correct address.")
document.contactformulier.Emailadres.select();
document.contactformulier.Emailadres.focus();
return false;
}
else
return true;
}

</SCRIPT>[/js]

Overigens zou ik gebruik maken van een reguliere expressie om het e-mailadres te controleren. Je huidige script accepteert "@." ook als geldig e-mailadres.
[js]var regexp = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
if (!regexp.test(document.contactformulier.Emailadres.value))
{
alert("Please enter a valid email address");
document.contactformulier.Emailadres.select();
document.contactformulier.Emailadres.focus();
return false;
}[/js]

Dan krijg je dus dit:
[js]<script>
function Verif()
{
if (document.contactformulier.Voornaam.value == ""){
alert("nName field is mandatory.nn" +
"Enter your name.")
document.contactformulier.Voornaam.focus();
return false;
}

if (document.contactformulier.Achternaam.value == ""){
alert("nName field is mandatory.nn" +
"Enter your name.")
document.contactformulier.Achternaam.focus();
return false;
}

var regexp = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]
{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2}
)\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
if (!regexp.test(document.contactformulier.Emailadres.value))
{
alert("Please enter a valid email address");
document.contactformulier.Emailadres.select();
document.contactformulier.Emailadres.focus();
return false;
}
else
return true;
}
</script>[/js]
 
Laatst bewerkt:
Toppie dat je me wilt helpen...
Ik kom hier een stuk verder mee....

Ik krijg alleen een foutmelding dat in het onderstaande een foutje zit.. dat er een ) verwacht wordt


var regexp = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]
{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2}
)\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
if (!regexp.test(document.contactformulier.Emailadres.value))


Nu wordt het formulier verzonden zonder check
 
Hm, bij mij werkt hij wel. Uit welk blok heb je dit gekopieerd? Het lijkt er op dat in het laatste blok (met de volledige code) de reguliere expressie over 3 regels is opgedeeld, i.p.v. dat het 1 regel is (zoals in het op-een-na-laatste blok). Mocht ook dat niet werken dan kan je ook nog proberen om een ';' (puntkomma) achter die regel ("var regexp = ...") te zetten (eigenlijk zou die er sowieso moeten staan).
 
Hm, bij mij werkt hij wel. Uit welk blok heb je dit gekopieerd? Het lijkt er op dat in het laatste blok (met de volledige code) de reguliere expressie over 3 regels is opgedeeld, i.p.v. dat het 1 regel is (zoals in het op-een-na-laatste blok). Mocht ook dat niet werken dan kan je ook nog proberen om een ';' (puntkomma) achter die regel ("var regexp = ...") te zetten (eigenlijk zou die er sowieso moeten staan).

Je hebt helemaal gelijk.
Ik heb het allemaal op 1 regel gezet en het werkt perfect!!!
Ik heb alleen de alerts even aangepast maar het werkt als een speer.
Ik ben je heel erg dankbaar voor je hulp en je moeite!


Groeten Hans
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan