foutje in javascript mailform. Wie helpt?

Status
Niet open voor verdere reacties.

Elfquest

Gebruiker
Lid geworden
9 jun 2005
Berichten
5
Ik ben een site aan het maken voor een vriend van mij en ben al een tijdje bezig dit mailform werkend te krijgen. Er zit een foutje in en ik puzzel mezelf suf, :confused: maar ik kan gewoon echt niet vinden waar. Zou iemand er misschien even naar kunnen kijken voor me? Zou ik echt geweldig vinden, bedankt.

Ik kopieer hieronder de code die ik heb.

Code:
<head>
<!-- FORM  -->

<script language="javascript" src="js/algemeen.js"></script>
<link href="style.css" rel="stylesheet" type="text/css">
<script language="Javascript" src="__utm.js" type="text/Javascript"></script>
<style type="text/css">
.m {
	display: none;
}
.n {
	;
}
</style>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function sh(_d)
	{ 
	  var _x = document.getElementById(_d);
	  if ( _x.className=="m"){
			_x.className = "n";	
		}
	}		
	function sh1(_d)
	{ 
	  var _x = document.getElementById(_d);
	  if (_x.className=="n"){
			_x.className = "m";
		}
	}
	function showHide(_d)
	{
		var _x = document.getElementById(_d);
		if (_x.className == "m"){
			_x.className = "n";
		}
		else if (_x.className == "n"){
			_x.className = "m";
		}
	}
//-->
</SCRIPT>

<!-- END FORM  -->
</head>

Code:
<body>
<!-- FORM  -->
        <!--  INSERT THE IMPO STUFF HERE PLEASE //--><SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
			<!--
				
				var continuesubmit = true;
			
				function setSubmitStatus() {
					if (continuesubmit == true) {
						continuesubmit = false;
						return true;
					} else {
						return false;
					}
				}
				
				function checkVinkjes() {
					var msg = "";
					var formobj = document.offerteform;
					var radiocheck = false;
					var contactmethod = "";
					
					
					//set value for contactm
					if (formobj.ochtend.checked == true) {
						contactmethod += formobj.ochtend.value;
					}
					if (formobj.middag.checked == true) {
						contactmethod += " of " + formobj.middag.value;
					}
					if (formobj.avond.checked == true) {
						contactmethod += " of " + formobj.avond.value;
					}
					formobj.contactm.value = contactmethod;
					//alert (formobj.contactm.value);
					
					if (formobj.companyname != null) {
						if (formobj.companyname.value == "")	msg = msg + "- Bedrijfsnaam\n";
					}
			
					if (formobj.clientname.value == "")	msg = msg + "- Naam\n";
					for (var i=0; i<formobj.gender.length;i++)
					{
						if (formobj.gender[i].checked == true)	radiocheck = true;
					}
					if (radiocheck == false)	msg = msg + "- Geslacht\n";
					if (formobj.telephone != null) {
						if (formobj.telephone.value == "")	msg = msg + "- Telefoon\n";
					}
					//if (formobj.telephone_day != null) {
					//	if (formobj.telephone_day.value == "")	msg = msg + "- Gsm\n";
					//}
					//if (formobj.ochtend.checked != true && formobj.middag.checked != true && formobj.avond.checked != true) {
					//	msg = msg + "- Bij voorkeur bellen\n"; }
					if (formobj.email.value == "")	{
						msg = msg + "- E-mail\n";
					} else {
						if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(formobj.email.value)) {
						} else {
							msg = msg + "- E-mail\n"; 
						}
					}
					
				    if (formobj.c_address.value == "")	
					{
					  msg = msg + "- Adres\n";
					}
			
			        if (formobj.c_postcode.value.length < 6) msg = msg + "- Postcode\n";
			        if (formobj.c_city.value == "")	msg = msg + "- Plaats\n";
					
					if (msg == "") {
						if (setSubmitStatus() == true) {
							return true;
						} else {
							return false;
						}
					} else {
						alert("Volgende velden zijn verplicht:\n\n" + msg);
						return false;
					}
				}
			//-->
		</SCRIPT><SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
			<!--
				function buttonsubmit() {
					var check = checkVinkjes();
					if (check) {
					document.offerteform.submit();
					}
				}
			//-->			
		</SCRIPT>

<!-- END FORM  -->
</body>
 
Misschien raadzaam om ook te melden wat er precies fout gaat.

Geen uitgebreide JS kennis, dus van mij zul je het antwoord niet horen
 
De foutconsole van FF na op je verstuurlink te klikken:
Code:
Fout: formobj has no properties
Bronbestand: http://www.tuinaanleg-radevsa.nl/Offerte.html
Regel: 151
Dit slaat op
Code:
function checkVinkjes() {
					var msg = "";
					var formobj = document.offerteform;
na een simpele zoektocht in je code blijkt dat 'offerteform' nergens in je html staat. Er staat zelfs geen form-tag :shocked:
Dus waarschijnlijk moet je die tage nog toevoegen:
HTML:
<form name="offerteform" action="{waar_ook_naartoe}">
Vergeet het formulier ook weer niet te sluiten!

--Johan
 
Bedankt voor de tips!
Ik heb er weer wat mee zitten stoeien en ook online codevoorbeeldjes opgezocht, maar ik kom er nog steeds niet uit.

Ik heb nu de tabel waar de invulvelden instaan tussen formtags gezet en een emailadres ingevuld. Zo:

<form name="offerteform" method="post"
action="mailto:cassievvliet@hotmail.com?SUBJECT=factuur aanvraag Radevsa" enctype="text/plain">

<table width="542" border="0" cellpadding="0" cellspacing="0" class="text_box_table">
<tr>
<td height="1" align="left" valign="top"><table border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td height="1" colspan="3"></td>
</tr>
<tr valign="top">
<td width="17" background="images/streep_verti.gif"></td>
<td><div align="center">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="5" align="left" class="style2"><b>Persoonsgegevens</b></td>
</tr>
<tr>
<td width="242" align="right" bgcolor="#EFEAD8"><span class="style2">Naam: *</span></td>
<td width="5" align="right" bgcolor="#EFEAD8"></td>
<td width="5" align="right"></td>
<td width="5" height="24" align="right" bgcolor="#E2D8B8"></td>
<td width="243" bgcolor="#E2D8B8"><div align="left">
<input type="text" name="clientname" size="30" class="tekstveld" />
</div></td>
</tr>
<tr>
<td bgcolor="#EFEAD8"><span class="style2"></span> </td>
<td bgcolor="#EFEAD8"></td>
<td></td>
<td height="24" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td><input type="radio" name="gender" value="0" /></td>
<td><span class="style2">M</span></td>
<td><input type="radio" name="gender" value="1" /></td>
<td><span class="style2">V *</span></td>
</tr>
</table>
</div></td>
</tr>
<tr>
<td align="right" bgcolor="#EFEAD8"><span class="style2">Tel: *</span></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right"></td>
<td height="22" align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<input type="text" name="telephone" size="30" class="tekstveld" />
</div></td>
</tr>
<tr>
<td align="right" bgcolor="#EFEAD8"><span class="style2">Gsm: </span></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right"></td>
<td height="24" align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<input type="text" name="telephone_day" size="30" class="tekstveld" />
</div></td>
</tr>
<tr>
<td align="right" valign="top" bgcolor="#EFEAD8"><span class="style2">Bij voorkeur bellen: </span></td>
<td align="right" valign="top" bgcolor="#EFEAD8"></td>
<td align="right" valign="top"></td>
<td height="24" align="right" valign="top" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<table width="95" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="22"><input type="checkbox" name="ochtend" value="'s ochtends" /></td>
<td width="73"><span class="style2">'s-ochtends</span></td>
</tr>
<tr>
<td><input type="checkbox" name="middag" value="'s middags" /></td>
<td><span class="style2">'s-middags</span></td>
</tr>
<tr>
<td><input type="checkbox" name="avond" value="'s avonds" /></td>
<td><span class="style2">'s-avonds</span></td>
</tr>
</table>
</div></td>
</tr>
<tr>
<td align="right" bgcolor="#EFEAD8"><span class="style2">E-mail: *</span></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right" ></td>
<td height="22" align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<input type="text" name="email" size="30" class="tekstveld" />
</div></td>
</tr>
<tr>
<td bgcolor="#EFEAD8"></td>
<td bgcolor="#EFEAD8"></td>
<td></td>
<td bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"></td>
</tr>
<tr>
<td align="right" bgcolor="#EFEAD8"><span class="style2">Adres: *</span></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right"></td>
<td height="24" align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<input type="text" name="c_address" size="30" class="tekstveld" />
</div></td>
</tr>
<tr>
<td align="right" bgcolor="#EFEAD8"><span class="style2">Postcode: *</span></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right"></td>
<td height="22" align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<input type="text" name="c_postcode" size="30" class="tekstveld" maxlength="7" id="Text1" />
</div></td>
</tr>
<tr>
<td align="right" bgcolor="#EFEAD8"><span class="style2">Plaats: *</span></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right"></td>
<td height="24" align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<input type="text" name="c_city" size="30" class="tekstveld" />
</div></td>
</tr>
<tr>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right"></td>
<td align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"></td>
</tr>
<tr>
<td colspan="5" align="left"><span class="style2"><b>Omschrijving werkzaamheden</b></span></td>
</tr>
<tr>
<td align="right" bgcolor="#EFEAD8"><span class="style2">Soort werk: </span></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right"></td>
<td align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<table width="87" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="22"><input type="checkbox" name="ochtend2" value="'s ochtends" /></td>
<td width="65"><span class="style2">ontwerp</span></td>
</tr>
<tr>
<td><input type="checkbox" name="middag2" value="'s middags" /></td>
<td><span class="style2">aanleg</span></td>
</tr>
<tr>
<td><input type="checkbox" name="avond2" value="'s avonds" /></td>
<td><span class="style2">onderhoud</span></td>
</tr>
</table>
</div></td>
</tr>
<tr>
<td colspan="5" heigth="3"></td>
</tr>
<tr valign="top">
<td align="right" bgcolor="#EFEAD8"><span class="style2">Geef hier een omschrijving van de te verrichten werkzaamheden:</span></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right"></td>
<td align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<textarea rows="10" name="aanlegwerk" class="tekstveld"></textarea>
</div></td>
</tr>
<tr>
<td colspan="5" heigth="3"></td>
</tr>
<tr valign="top">
<td height="118" align="right" bgcolor="#EFEAD8"><span class="style2">Extra informatie, opmerkingen of vragen:</span></td>
<td align="right" bgcolor="#EFEAD8"></td>
<td align="right"></td>
<td align="right" bgcolor="#E2D8B8"></td>
<td bgcolor="#E2D8B8"><div align="left">
<p>
<textarea rows="6" name="remarks" class="tekstveld"></textarea>
</p>
</div></td>
</tr>
</table>
</div></td>
<td width="17" background="images/streep_verti2.gif"></td>
</tr>
<tr valign="top">
<td>&nbsp;</td>
<td height="22" align="right" valign="middle" background="images/streep_hori.gif"><a href="javascript:buttonsubmit();" class="staplink">Verstuur het formulier &raquo;</a></td>
<td align="right" valign="middle"></td>
</tr>
</table></td>
</tr>
</table>
</form>

Verder heb ik het form de naam offerteform gegeven en het script tussen head tags gezet.

<head>
<!-- FORM -->
<!-- INSERT THE IMPO STUFF HERE PLEASE //--><SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--

var continuesubmit = true;

function setSubmitStatus() {
if (continuesubmit == true) {
continuesubmit = false;
return true;
} else {
return false;
}
}

function checkVinkjes() {
var msg = "";
var formobj = document.offerteform;
var radiocheck = false;
var contactmethod = "";


//set value for contactm
if (formobj.ochtend.checked == true) {
contactmethod += formobj.ochtend.value;
}
if (formobj.middag.checked == true) {
contactmethod += " of " + formobj.middag.value;
}
if (formobj.avond.checked == true) {
contactmethod += " of " + formobj.avond.value;
}
formobj.contactm.value = contactmethod;
//alert (formobj.contactm.value);

if (formobj.companyname != null) {
if (formobj.companyname.value == "") msg = msg + "- Bedrijfsnaam\n";
}

if (formobj.clientname.value == "") msg = msg + "- Naam\n";
for (var i=0; i<formobj.gender.length;i++)
{
if (formobj.gender.checked == true) radiocheck = true;
}
if (radiocheck == false) msg = msg + "- Geslacht\n";
if (formobj.telephone != null) {
if (formobj.telephone.value == "") msg = msg + "- Telefoon\n";
}
//if (formobj.telephone_day != null) {
// if (formobj.telephone_day.value == "") msg = msg + "- Gsm\n";
//}
//if (formobj.ochtend.checked != true && formobj.middag.checked != true && formobj.avond.checked != true) {
// msg = msg + "- Bij voorkeur bellen\n"; }
if (formobj.email.value == "") {
msg = msg + "- E-mail\n";
} else {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(formobj.email.value)) {
} else {
msg = msg + "- E-mail\n";
}
}

if (formobj.c_address.value == "")
{
msg = msg + "- Adres\n";
}

if (formobj.c_postcode.value.length < 6) msg = msg + "- Postcode\n";
if (formobj.c_city.value == "") msg = msg + "- Plaats\n";

if (msg == "") {
if (setSubmitStatus() == true) {
return true;
} else {
return false;
}
} else {
alert("Volgende velden zijn verplicht:\n\n" + msg);
return false;
}
}
//-->
</SCRIPT><SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function buttonsubmit() {
var check = checkVinkjes();
if (check) {
document.offerteform.submit();
}
}

//-->
</SCRIPT>

<!-- END FORM -->

</head>


Maar hij verstuurt nog steeds niet. Wat zie ik nou over het hoofd? Zo zou ie het toch moeten doen?
 
Beste Elfquest,

Je Form kun je "niet" laten versturen naar een mailadres. Je zult hem moeten sturen naar een pagina die het formulier verwerkt om het vervolgens naar een mail adres te sturen. Die pagina zou in ASP of PHP kunnen zijn. Ik typ hieronder even de linkjes naar de reference van de objecten die je nodig hebt:

form, inputs, selected:
w3schools.com/html/html_forms.asp
Let goed op! name attribuut is niet goed ondersteund voor DOM/javascript communicatie. Gebruikt daarom zowel name als id

Bij je javascript kun je nu de ID's aanspreken (wat in iedere browser werkt, en geen last heeft van andere elementen op je pagina:
document.getElementById('naam-van-element')

En dan nog even stukje PHP (als je het gedetailieerder of in een andere taal wilt hebben moet je een naar het andere forum huppelen met de naam van je taal).
PHP:
// vraag je gegevens op. Ik ga uit van <form method="post">
$variabel1 = stripslashes($_POST["variabel2"]); // vraag var op en haal de \' en \" weg

$mailbody = "Variabel 1: $variabel1"; // resulteert in: Variabel 1: waarde-van-var1

mail("naar@wie.nl", "Het onderwerp", $mailbody); // verstuur de mail: http://nl3.php.net/manual/nl/function.mail.php

Bovenstaande code kan nog veel ingewikkelder waarbij je checked of het allemaal wel klopt en nog lekker codeert zodat je mail beter te lezen is. Maar bovenstaande code is de basis en werkt prima.

Ik hoop dat je hier stukkie verder mee komt!

Wout
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan