function check_email(f) { var x = f if (!x) { document.opret_ny.email.focus(); alert(\"Du skal indtaste din email adresse\"); return false; } else if (x) { var pattern = new RegExp(/^[a-zA-Z0-9]+@astongroup.com$/); var tjek = x.match( pattern ); if (!tjek) { document.opret_ny.email.focus(); alert(\"Du skal indtaste en valid email adresse (*@astongroup.com)\"); return false; } else { return true; } } } </script>
function check_email(f) { // var x = f // x svarer til f.value if ( f.value.length == 0 ) { // tester strengens længde document.opret_ny.email.focus(); alert(\"Du skal indtaste din email adresse\"); return false; } else { var pattern = new RegExp(/^[a-zA-Z0-9]+@astongroup.com$/); var tjek = f.value.match( pattern ); if (!tjek) { document.opret_ny.email.focus(); alert(\"Du skal indtaste en valid email adresse (*@astongroup.com)\"); return false; } else { return true; } } } </script>
Ups. Regederlig fejl: din onsubmit SKAL være onSubmit=\"return check_email(document.opret_ny.email)\"> istedet for blot onSubmit=\"check_email(document.opret_ny.email)\">
uden den return er det rent held hvis der returneres korrekt trye eller false.
roenving --> Fejlmeddelelsen er alert(\"Du skal indtaste en valid email adresse (*@astongroup.com)\");. Grunden til at jeg skriver den lange version: document.opret_ny.email.focus(), er at jeg har haft problemer med at få funktionen til at hente og bringe værdierne fra felterne i formularen og har derfor prøvet forskellige ting. Det virkede først da jeg skrev det således.
Det er også derfor at jeg bruger det lidt dobbelte x = f;, som phoenixv har kommenteret.
jacoba --> hvad er automatisk typekonvertering? Er det når der konverteres mellem f.eks. tal og tekst?
Email feltet i mit eksempel er en del af en formular med flere felter. I den oprindelige formular har jeg husket return i onSubmit. Jeg lavede dette eksempel efter hukommelsen, så derfor glemte jeg return. Men sjovt nok virker ovenstående fint for min far, hvorimod den endelige formular ikke virker for ham.
Jeg kopierer lige hele formularen og scriptet ind her, så kan det være I kan se en fejl som jeg ikke selv kan se...
<SCRIPT language=JavaScript1.2> function check_fnavn(f) { var x = f.value
if (!x) { f.focus(); alert(\"Du skal indtaste dit fornavn\"); return false; } else if (x) { var x = x + \"q\"; if (trim(x) == \"q\") { f.focus(); alert(\"Du skal indtaste dit fornavn\"); return false; } } else { return true; } return true; }
function check_enavn(f) { var x = f.value
if (!x) { f.focus(); alert(\"Du skal indtaste dit efternavn\"); return false; } else if (x) { var x = x + \"q\"; if (trim(x) == \"q\") { f.focus(); alert(\"Du skal indtaste dit efternavn\"); return false; } } else { return true; } return true; }
function check_email(f) { var x = f.value if (!x) { f.focus(); alert(\"Du skal indtaste din email adresse\"); return false; } else if (x) { var pattern = new RegExp(/^[a-zA-Z0-9]+@astongroup.com$/); var tjek = x.match( pattern ); if (!tjek) { f.focus(); alert(\"Du skal indtaste en valid email adresse (*@astongroup.com)\"); return false; } else { return true; } } }
function check_brugerID(f) { var x = f.value
if (!x) { f.focus(); alert(\"Du skal indtaste et brugerID\"); return false; } else if (x) { id = x; my_email = document.opret_ny.email.value; if (my_email.search(id) == -1) { f.focus(); alert(\"Dit brugerID skal være lig med de initialer\\nder står foran @ i din email adresse\"); return false; } } return true; }
function check_all(f) { if (!check_fnavn(document.opret_ny.fnavn)) return false; if (!check_enavn(document.opret_ny.enavn)) return false; if (!check_email(document.opret_ny.email)) return false; if (!check_brugerID(document.opret_ny.brugerID)) return false; return true; }
function ltrim( s ) { var lpatt = new RegExp( \"^ *(.*)$\" ); var parse = s.match( lpatt ); return parse[1]; }
function rtrim( s ) { var rpatt = new RegExp( \"^(.*[^ ]) *$\" ); var parse = s.match( rpatt ); return parse[1]; }
function trim (string) { trimboth = ltrim( rtrim( string ) ); return trimboth; } </SCRIPT>
du siger var pattern = new RegExp(/^[a-zA-Z0-9]+@astongroup.com$/); men regexp skal have en STRENG som parameter. prøv med: var pattern = new RegExp(\"^[a-zA-Z0-9]+@astongroup.com$\");
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.