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?
@ndersMedlem sedan juni 200032 969 inlägg Beror väl på. Vad är det som inte funkar?
Den validerar inte utan den kör action direkt.
onSubmit="return validateForm();"
@ndersMedlem sedan juni 200032 969 inlägg 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?
JojoxxMedlem sedan juni 20004 308 inlägg 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).
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.
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 =/
@ndersMedlem sedan juni 200032 969 inlägg Ja, javascript är skiftlägeskänsligt.
Flyttas alltså från ASP-forumet.
mvh