webForumDet fria alternativet

Server.Execute & Validera formulär

JavaScript

7 svar · 598 visningar · startad av GronWall

Medlem sedan aug. 200844 inlägg
Frågan#1

Hej alla glada!
Använder mig av Server.Execute för att infoga en massa sidor.
På en sida jag infogar finns ett formulär som jag skulle behöva validera med hjälp av JS.
Jag har testat att lägga scriptet både på "huvudsidan" och sidan där formuläret finns men det fungerar inte,

<script type="text/javascript">
String.prototype.isValidEmail = function(){
	return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validateForm() {
	if (document.f.namn.value=="") {
		alert("Du måste fylla i ett namn.");
		return false;
	} else if (!document.f.email.value.isValidEmail()) {
		alert("Du måste fylla i korrekt en E-mail adress.");
		return false;
	} else if (document.f.telefon.value=="") {
		alert("Du måste fylla i ett telefonnummer.");
		return false;
	} else if (document.f.alder.value=="") {
		alert("Du måste fylla i en ålder.");
		return false;
	} else if (document.f.malsman.value=="") {
		alert("Du måste fylla i en målsman.");
		return false;
	}
}
</script>

Går det att fixa?

Medlem sedan juni 200032 967 inlägg
#2

Beror väl på. Vad är det som inte funkar?

Medlem sedan aug. 200844 inlägg
#3

Den validerar inte utan den kör action direkt.

onSubmit="return validateForm();"
Medlem sedan juni 200032 967 inlägg
#4

Jag har svårt att se att det har något att göra med asp-koden, men du visar för lite kod hur som helst.

Hur ser formuläret ut? Vad säger javascript-konsollen? Har du fler formulär? Har du kollat den resulterande koden i sidan så du vet vad som verkligen skickas till webbläsaren?

Medlem sedan juni 20004 308 inlägg
#5

Oj, usch... den där koden känner jag mig pinsamt ansvarig för ;)

Scriptet är hårdkodad för att formuläret skall heta "f" och exempelvis fältet för e-post "email".

Prova detta istället:

<script type="text/javascript">
String.prototype.isValidEmail = function(){
	return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validateForm(obj) {
	if (!obj.email.value.isValidEmail()) {
		alert("Du måste fylla i korrekt en E-mail adress.");
		return false;
	} else {
		return true;
	}
}
</script>

samt

onSubmit="return validateForm(this);"

Byt ut "email" i "obj.email.value" mot namnet på fältet för epost (antar att det är det du vill validera eftersom du valt detta script).

Medlem sedan aug. 200844 inlägg
#6

Jag postade i asp för att jag ville veta om det gick att göra en valindering av ett formulär i den filen där formuläret är när man kör en Server.Execute eller om scriptet ska ligga på huvudsidan..

Det är flera fält jag vill valendera. Alla förutom email för att kolla om dom är tomma.

Medlem sedan aug. 200844 inlägg
#7

Det var faktisk så äckligt simpelt som att se till så både namnet på fomulären och i scriptet är skriva på samma sätt.. Nu fattades stor bokstav i början =/

Medlem sedan juni 200032 967 inlägg
#8

Ja, javascript är skiftlägeskänsligt.

Flyttas alltså från ASP-forumet.

mvh

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)