Toont javascript als tekst in Firefox

Status
Niet open voor verdere reacties.

DaveCuppen

Gebruiker
Lid geworden
11 jan 2008
Berichten
49
Hallo allemaal,

Ik hoop echt dat iemand mij hiermee kan helpen?
Ik heb een vragenformulier gemaakt met natuurlijk javascripting, om eventuele onvolledige input te controleren, nu verschijnt dit stukje javascript als tekst bovenin de pagina, dit is alleen bij Firefox, bij IE, loopt het goed, kan iemand mij hierbij assisteren?
Hierbij de code, wat als tekst gezien wordt in Firefox!
Code:
ok=true
	if(theForm.email.value=="")
	{
		alert("U dient een geldig e-mail adres in het \"e-mail\" veld in te voeren.")
		theForm.email.focus()
		ok=false
	}
	else
	{
		mail=theForm.email.value
		at_pos=mail.indexOf("@")
		dot_pos=mail.indexOf(".")
		if(at_pos<1 || dot_pos<1)
		{
			alert("Gelieve de positie van de '@' en  van de '.' te controleren. ")
			theForm.email.focus()
			ok=false
		}
		else
		{
			mail=theForm.email.value
			condition="yes"
			var at_count=0
			var dot_count=0
			var temp=0
			for(var i=0;i<mail.length;i++)
			{
				if((mail.charCodeAt(i)>0 && mail.charCodeAt(i)<48)||(mail.charCodeAt(i)>57 && mail.charCodeAt(i)<65)||(mail.charCodeAt(i)>91 && mail.charCodeAt(i)<97)||mail.charCodeAt(i)>122)
				{
					if(mail.charAt(i)=="@"||mail.charAt(i)==".")
					{
							if(mail.charAt(i)=="@"){at_count++}else{dot_count++} // counts the no. of times @ and . appears in email
							if(dot_count>=1)
							{
								dot_pos=i
								if((dot_pos>at_pos) && temp==0)
								{
									pos=dot_pos-at_pos
									temp++
								}								
							}
					}
					else
					{
						condition="no"
						i=mail.length
					}
				}
			}
			if(condition=="no")
			{
				alert("Uw e-mail adres bevat een spatie of een speciaal karakter.")
				theForm.email.focus()
				ok=false
			}
			else
			{
				if(at_count>1)
				{
					alert("Uw e-mail adres bevat een '@' te veel.")
					theForm.email.focus()
					ok=false
				}
				else
				{
					if(pos<2)
					{
						alert("Er staat geen domein tussen '@' en '.'")
						theForm.email.focus()
						ok=false
						i=mail.length
					}
					else
					{	
						count=dot_pos+1
						domain=""
						for(count;count<mail.length;count++)
						{
							domain=domain+mail.charAt(count)		
						}
						dom=new Array("au","com","net","org","edu","in","mil","gov","arpa","biz","aero","name","coop","info","pro","museum")
						error="yes"
						for(var k=0;k<dom.length;k++)
						{
							if(domain==dom[k])
							{
								k=dom.length
								error="no"
							}
						}
						if((error=="yes" && (domain.length>2)) || (domain.length<2))
						{
							alert("Het domein moet eindigen met een gekende domein extentie of een landnaam extentie van 2 letters zoals .be, .com, .info, enz.")
							theForm.email.focus()
							ok=false
						}
		<!-- begin vergelijking email velden. -->
						    if (theForm.email.value != theForm.emailb.value)
						{
							alert('Email adressen zijn niet hetzelfde');
							theForm.emailb.focus()
							return false;
						}
		<!-- einde vergelijking email velden. -->
 								
					}
				}
			}
		}
	}
	return ok
Alvast viendelijk bedankt
Groetjes,
Dave
 
Laatst bewerkt door een moderator:
Ik gok dat je aan het begin (dus voor ok = true) even dit moet zetten:
<script type = "text/javascript">

En aan het eind (na return ok):
</script>
 
Dank je aaajeetee,

Dat de tekst weg is in het beeld, dat is gelukt, maar de errorcheck werkt nu om de een of andere reden niet meer :(

Weet je daar misschien iets op?

Alvast bedankt

Gr.
Dave

PS...Dit is mijn hele scriptje, ps het rode gedeelte is wat als tekst wordt getoond, de rest niet :S
Code:
<SCRIPT LANGUAGE="JavaScript">

<!-- Begin verplichte velden check. ------------------------------------------------------------------------------------------------- -->
<!-- DE NAAMEN VAN VERPLICHTE VELDEN MOET BEGINNEN MET "req_" (vb. req_naam) -->
<!-- Geen aanpassingen in de java code nodig -->
<!-- Vertaal tekst na "alert". LET OP MET AANHAKINGTEKENS. Moeten voorafgegaan worden met een backslash "\" -->
function checkformerrors(theForm)
	{
	var pass=true;
	if (document.images)
		{
		for (i=0;i<theForm.length;i++)
			{
			var tempobj=theForm.elements[i];
			if (tempobj.name.substring(0,4)=="req_")
				{
				if (((tempobj.type=="text"||tempobj.type=="textarea")&&
				tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&
				tempobj.selectedIndex==0))
					{
					pass=false;
					break;
					}
				}
			}
		}
if (!pass)
		{
		shortFieldName=tempobj.name.substring(4,50).toUpperCase();
		alert("Gelieve een waarde voor het veld "+shortFieldName+" in te voeren.");
		theForm.elements[i].focus();
		return false;
		}
<!-- Einde verplichte velden check. ------------------------------------------------------------------------------------------------- -->



else

<!-- Begin email velden check. ------------------------------------------------------------------------------------------------------ -->
<!-- DE NAAM VAN HET EERSTE VELD MOET "email" zijn. -->
<!--DE NAAM VAN HET tweede VELD MOET "emailb" zijn. -->
<!-- Geen aanpassingen in de java code nodig -->
<!-- Vertaal tekst na "alert". LET OP MET AANHAKINGTEKENS. Moeten voorafgegaan worden met een backslash "\" -->
[COLOR="Red"]ok=true
	if(theForm.email.value=="")
	{
		alert("U dient een geldig e-mail adres in het \"e-mail\" veld in te voeren.")
		theForm.email.focus()
		ok=false
	}
	else
	{
		mail=theForm.email.value
		at_pos=mail.indexOf("@")
		dot_pos=mail.indexOf(".")
		if(at_pos<1 || dot_pos<1)
		{
			alert("Gelieve de positie van de '@' en  van de '.' te controleren. ")
			theForm.email.focus()
			ok=false
		}
		else
		{
			mail=theForm.email.value
			condition="yes"
			var at_count=0
			var dot_count=0
			var temp=0
			for(var i=0;i<mail.length;i++)
			{
				if((mail.charCodeAt(i)>0 && mail.charCodeAt(i)<48)||(mail.charCodeAt(i)>57 && mail.charCodeAt(i)<65)||(mail.charCodeAt(i)>91 && mail.charCodeAt(i)<97)||mail.charCodeAt(i)>122)
				{
					if(mail.charAt(i)=="@"||mail.charAt(i)==".")
					{
							if(mail.charAt(i)=="@"){at_count++}else{dot_count++} // counts the no. of times @ and . appears in email
							if(dot_count>=1)
							{
								dot_pos=i
								if((dot_pos>at_pos) && temp==0)
								{
									pos=dot_pos-at_pos
									temp++
								}								
							}
					}
					else
					{
						condition="no"
						i=mail.length
					}
				}
			}
			if(condition=="no")
			{
				alert("Uw e-mail adres bevat een spatie of een speciaal karakter.")
				theForm.email.focus()
				ok=false
			}
			else
			{
				if(at_count>1)
				{
					alert("Uw e-mail adres bevat een '@' te veel.")
					theForm.email.focus()
					ok=false
				}
				else
				{
					if(pos<2)
					{
						alert("Er staat geen domein tussen '@' en '.'")
						theForm.email.focus()
						ok=false
						i=mail.length
					}
					else
					{	
						count=dot_pos+1
						domain=""
						for(count;count<mail.length;count++)
						{
							domain=domain+mail.charAt(count)		
						}
						dom=new Array("au","com","net","org","edu","in","mil","gov","arpa","biz","aero","name","coop","info","pro","museum")
						error="yes"
						for(var k=0;k<dom.length;k++)
						{
							if(domain==dom[k])
							{
								k=dom.length
								error="no"
							}
						}
						if((error=="yes" && (domain.length>2)) || (domain.length<2))
						{
							alert("Het domein moet eindigen met een gekende domein extentie of een landnaam extentie van 2 letters zoals .be, .com, .info, enz.")
							theForm.email.focus()
							ok=false
						}
		<!-- begin vergelijking email velden. -->
						    if (theForm.email.value != theForm.emailb.value)
						{
							alert('Email adressen zijn niet hetzelfde');
							theForm.emailb.focus()
							return false;
						}
		<!-- einde vergelijking email velden. -->
 								
					}
				}
			}
		}
	}
	return ok[/COLOR]
<!-- Einde email velden check. ------------------------------------------------------------------------------------------------------ -->

	
return true;
}

</script>

<!-- Begin beperkte karakters. ------------------------------------------------------------------------------------------------------ -->
<!-- geef in de "input" tag bij -onkeypress="return chkValid(event,'xxxxxxxxxx')- aan welke karakters en kunnen ingegeven worden ---- -->
<!-- Geen aanpassingen in de java code nodig -->
<script Language="JavaScript" Type="text/javascript">
function chkValid(e,valid,rejKey,rejChr) {
  var ctl = "null|0|8|9|13|27";
  var evt = (window.event) ? window.event.keyCode : (e) ? e.which : "";
  var chr = String.fromCharCode(evt).toUpperCase();
  var rej = ((evt && rejKey && rejKey.toString().indexOf(evt) != -1) || (chr && rejChr && rejChr.indexOf(chr) != -1));
  if (rejKey || rejChr) {
    if ((evt && rejKey && rejKey.toString().indexOf(evt) != -1) || (chr && rejChr && rejChr.indexOf(chr) != -1)) return false;
  }
  else if ((evt && ctl.indexOf(evt) == -1) && (chr && valid.indexOf(chr) == -1)) return false;
  return true;
}
</script>
<!-- Einde beperkte karakters. ------------------------------------------------------------------------------------------------------ -->

<!-- ----------------------------------------------------EINDE ERROR CHECK----------------------------------------------------------- -->
<!-- -------------------------------------------------------------------------------------------------------------------------------- -->


</head>
<body>
 
Laatst bewerkt:
Wat is er niet goed dan...begrijp namelijk niet precies wat men met je bijgevoegde link bedoeld?

:(
 
Wat is er niet goed dan...begrijp namelijk niet precies wat men met je bijgevoegde link bedoeld?

:(

Je ziet "<!--" staan, als commentaar. Dit werkt alleen in HTML.
Om commentaar in Javascript te doen moet je "//" of "/*...*/" gebruiken.

Verander dus alle "<!--" (bínnen je <script> en </script> tags!) naar "//".
 
Dank je wel jullie beide,

Volgens mij werkt het nu goed :)
Komt geen tekst meer bovenaan de pagina en de errormessages verschijnen nog :)

Mij code is nu als volgt:
Code:
<script Language="JavaScript">

//Begin verplichte velden check.//
//DE NAAMEN VAN VERPLICHTE VELDEN MOET BEGINNEN MET "req_" (vb. req_naam)//
//Geen aanpassingen in de java code nodig//
//Vertaal tekst na "alert". LET OP MET AANHAKINGTEKENS. Moeten voorafgegaan worden met een backslash "\"//
function checkformerrors(theForm)
	{
	var pass=true;
	if (document.images)
		{
		for (i=0;i<theForm.length;i++)
			{
			var tempobj=theForm.elements[i];
			if (tempobj.name.substring(0,4)=="req_")
				{
				if (((tempobj.type=="text"||tempobj.type=="textarea")&&
				tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&
				tempobj.selectedIndex==0))
					{
					pass=false;
					break;
					}
				}
			}
		}
if (!pass)
		{
		shortFieldName=tempobj.name.substring(4,50).toUpperCase();
		alert("Gelieve een waarde voor het veld "+shortFieldName+" in te voeren.");
		theForm.elements[i].focus();
		return false;
		}
// Einde verplichte velden check. ------------------------------------------------------------------------------------------------- //



else

//Begin email velden check. ------------------------------------------------------------------------------------------------------ //
//DE NAAM VAN HET EERSTE VELD MOET "email" zijn.//
//DE NAAM VAN HET tweede VELD MOET "emailb" zijn.//
//Geen aanpassingen in de java code nodig//
//Vertaal tekst na "alert". LET OP MET AANHAKINGTEKENS. Moeten voorafgegaan worden met een backslash "\"//
ok=true
	if(theForm.email.value=="")
	{
		alert("U dient een geldig e-mail adres in het \"e-mail\" veld in te voeren.")
		theForm.email.focus()
		ok=false
	}
	else
	{
		mail=theForm.email.value
		at_pos=mail.indexOf("@")
		dot_pos=mail.indexOf(".")
		if(at_pos<1 || dot_pos<1)
		{
			alert("Gelieve de positie van de '@' en  van de '.' te controleren. ")
			theForm.email.focus()
			ok=false
		}
		else
		{
			mail=theForm.email.value
			condition="yes"
			var at_count=0
			var dot_count=0
			var temp=0
			for(var i=0;i<mail.length;i++)
			{
				if((mail.charCodeAt(i)>0 && mail.charCodeAt(i)<48)||(mail.charCodeAt(i)>57 && mail.charCodeAt(i)<65)||(mail.charCodeAt(i)>91 && mail.charCodeAt(i)<97)||mail.charCodeAt(i)>122)
				{
					if(mail.charAt(i)=="@"||mail.charAt(i)==".")
					{
							if(mail.charAt(i)=="@"){at_count++}else{dot_count++} // counts the no. of times @ and . appears in email
							if(dot_count>=1)
							{
								dot_pos=i
								if((dot_pos>at_pos) && temp==0)
								{
									pos=dot_pos-at_pos
									temp++
								}								
							}
					}
					else
					{
						condition="no"
						i=mail.length
					}
				}
			}
			if(condition=="no")
			{
				alert("Uw e-mail adres bevat een spatie of een speciaal karakter.")
				theForm.email.focus()
				ok=false
			}
			else
			{
				if(at_count>1)
				{
					alert("Uw e-mail adres bevat een '@' te veel.")
					theForm.email.focus()
					ok=false
				}
				else
				{
					if(pos<2)
					{
						alert("Er staat geen domein tussen '@' en '.'")
						theForm.email.focus()
						ok=false
						i=mail.length
					}
					else
					{	
						count=dot_pos+1
						domain=""
						for(count;count<mail.length;count++)
						{
							domain=domain+mail.charAt(count)		
						}
						dom=new Array("au","com","net","org","edu","in","mil","gov","arpa","biz","aero","name","coop","info","pro","museum")
						error="yes"
						for(var k=0;k<dom.length;k++)
						{
							if(domain==dom[k])
							{
								k=dom.length
								error="no"
							}
						}
						if((error=="yes" && (domain.length>2)) || (domain.length<2))
						{
							alert("Het domein moet eindigen met een gekende domein extentie of een landnaam extentie van 2 letters zoals .be, .com, .info, enz.")
							theForm.email.focus()
							ok=false
						}
		// begin vergelijking email velden. //
						    if (theForm.email.value != theForm.emailb.value)
						{
							alert('Email adressen zijn niet hetzelfde');
							theForm.emailb.focus()
							return false;
						}
		// einde vergelijking email velden. //
 								
					}
				}
			}
		}
	}
	return ok
// Einde email velden check. ------------------------------------------------------------------------------------------------------ //

	
return true;
}
</script>

<script Language="JavaScript" Type="text/javascript">
function chkValid(e,valid,rejKey,rejChr) {
  var ctl = "null|0|8|9|13|27";
  var evt = (window.event) ? window.event.keyCode : (e) ? e.which : "";
  var chr = String.fromCharCode(evt).toUpperCase();
  var rej = ((evt && rejKey && rejKey.toString().indexOf(evt) != -1) || (chr && rejChr && rejChr.indexOf(chr) != -1));
  if (rejKey || rejChr) {
    if ((evt && rejKey && rejKey.toString().indexOf(evt) != -1) || (chr && rejChr && rejChr.indexOf(chr) != -1)) return false;
  }
  else if ((evt && ctl.indexOf(evt) == -1) && (chr && valid.indexOf(chr) == -1)) return false;
  return true;
}

</script>

</head>
<body>
 
Je hebt:
//Vertaal tekst na "alert". LET OP MET AANHAKINGTEKENS. Moeten voorafgegaan worden met een backslash "\" //
de laatst // mogen weg, mits het op EEN regel staat

Je hebt in je formulier wel de juiste veldnamen, welek ook in
het script zitten?

:cool:
 
sorry mensen, ben een tijdje niet hier geweest...maar mijn vraag is inmiddels opgelost :)
Bij deze allen bedankt voor jullie hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan