24. november 2008 - 18:27Der er
13 kommentarer og 1 løsning
Bestemt indhold i input
Hello.
Jeg skal bruge en lille javascript-validering af emails. Hvis et input skal indeholde "@" og "." før det kan submittes, hvordan skal javascriptet så se ud? Og indeholder inputtet _ikke_ de tegn skal brugeren alertes med en besked.
Tak for dit svar, olebole. Jeg har flere valideringer på samme form, men kun én af valideringerne "slår igennem" - så enten virker valideringen af mine andre felter eller også virker email-valideringen. Er det onsubmit'en det er noget galt med?
onsubmit="return validateForm(this, ['firstName', 'adresse', 'by'], ['Ups! Du mangler at udfylde dit navn', 'Du mangler en adresse', 'Du skal lige indtaste din by']); return tjek_mail(this)">
Jeg skal blankt indrømme at jeg ikke har det fjerneste forstand på javascript. Jeg bruger "brudstykker" fra koder bla. roenving og w13 har lavet til mig. I alt bruger jeg 3 javascripts:
<script type="text/javascript"> function validateForm(oForm,aFields,aErrors){ for (var i=0; i<aFields.length; i++) { if (oForm[aFields[i]].value == oForm[aFields[i]].defaultValue || oForm[aFields[i]].value == "") { alert(aErrors[i]); oForm[aFields[i]].focus(); return false; } } return true; } </script> <script type="text/javascript"> function visDiv(f){ if(f.firstName.value != "" && f.eMail.value != "") document.getElementById("minDiv").style.display = "block"; } </script> <script type="text/javascript"> function tjek_mail(f) {
var eMail = f.eMail; var emailreg=/^.+@.+\..{2,4}$/
if (!eMail.value.match(emailreg)) { alert("Indtast en gyldig email adresse !!!") eMail.focus(); return false; }
return true; } </script>
-- Og på formen ligger så den onsubmit der skal validere email-inputtet og de resterende inputs. Kan man samle de 3 javascripts i én? Eller hvordan fungerer det?
<script type="text/javascript"> function validateForm(oForm,aFields,aErrors){ for (var i=0; i<aFields.length; i++) { if (oForm[aFields[i]].value == oForm[aFields[i]].defaultValue || oForm[aFields[i]].value == "") { alert(aErrors[i]); oForm[aFields[i]].focus(); return false; } } return true; } function visDiv(f){ if(f.firstName.value != "" && f.eMail.value != "") document.getElementById("minDiv").style.display = "block"; } function tjek_mail(f) {
var eMail = f.eMail; var emailreg=/^.+@.+\..{2,4}$/
if (!eMail.value.match(emailreg)) { alert("Indtast en gyldig email adresse !!!") eMail.focus(); return false; }
return true; } </script>
onsubmit="return validateForm(this, ['firstName', 'adresse', 'by'], ['Ups! Du mangler at udfylde dit navn', 'Du mangler en adresse', 'Du skal lige indtaste din by']) && tjek_mail(this)">
Hrm, det er vel også for dumt ikke at regulere regExp'en, så den lige holder de mest elementære steder:
var emailreg=/^.*@.+\.[a-z]{2,6}$/
(Det, der kommer foran @-tegnet må ifølge nyeste standard for mail-adresser (rfc2822) ikke checkes af andre end mail-hosten, og der findes nu tld'er (top-level domains) på op til 6 bogstaver, f.eks. .museum !-)
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.