14. maj 2009 - 13:55Der er
6 kommentarer og 1 løsning
hvorfor laver min validering alert på 2 inputboxe
Jeg har lavet en formular, som jeg validerer med javascript
Når jeg ikke skriver i navn, kommer der en alert, når jeg trykker på den, kommer den en alert for mail feltet. Det samme sker, når jeg har udfyldt navn og ikke udfylder adressen.
Jeg har været ude for det før, men kan ikke huske løsningen. Håber en eller anden kan hjælpe.
Min validering ser ud som følger:
function validering() { error = 0; if((document.kontaktform2.navn.value=="") && (error==0)) { alert("Du skal udfylde feltet med dit navn!"); document.kontaktform2.navn.focus(); error = 1; }
if((document.kontaktform2.mail.value=="") && (error==0)) { alert("Du skal udfylde felter e-mail!"); document.kontaktform2.mail.focus(); error = 1; } //hvis det ikke er tomt (er forskelligt fra tomt) testet om der er et snabel a, æ,ø å o.s.v.) else if (document.kontaktform2.value!="") { placering=0; tekst=(document.kontaktform2.mail.value).toLowerCase(); placering=tekst.indexOf("@"); if(tekst =="") { alert ("Du skal indtaste en e-mail adresse"); error = 1; } else { tegn=tekst.indexOf(" "); if(tegn!=-1) { alert ("Der må ikke være mellemrum i mail adressen"); document.kontaktform2.mail.focus(); error = 1; } else {
if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 || tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 || tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1) { alert ("Adressen må ikke indeholde æ ø å Æ Ø Å , ;"); document.kontaktform2.mail.focus(); error = 1; } else { if (placering<1 || tekst.length<=(placering+1)) { alert ("Mailadressen er forkert - forsøg igen"); document.kontaktform2.mail.focus(); error = 1; } } } }
}
if((document.kontaktform2.meddelelse.value=="") && (error==0)) { alert("Du skal skrive noget i tekstfeltet!"); document.kontaktform2.meddelelse.focus(); error = 1; }
//hvis alle felter er udfyldt error ==0 sendes (submittes)formularen if(error == 0) document.kontaktform2.submit(); }
Der må gædt være mellemrum, æøåé osv. i mail-adresser, men en del af tegnene må kun være foran @-tegnet ...
Valideringen burde ikke give problemer i den form du har den, men jeg kan da stærkt opfordre til at du bruger en meget simplere og bedre model:
function validering(f){ if(f.navn.value=="") { alert("Du skal udfylde feltet med dit navn!"); f.navn.focus(); return false; } if(f.adresse.value=="") { alert("Du skal udfylde adressefeltet!"); f.adresse.focus(); return false; }
if(f.mail.value=="") { alert("Du skal udfylde felter e-mail!"); f.mail.focus(); return false; } //hvis det ikke er tomt (er forskelligt fra tomt) testet om der er et snabel a, æ,ø å o.s.v.) else if f.mail.value!="") { placering=0; tekst=f.mail.value).toLowerCase(); placering=tekst.indexOf("@"); if(tekst =="") { alert ("Du skal indtaste en e-mail adresse"); return false; } else { tegn=tekst.indexOf(" "); if(tegn!=-1) { alert ("Der må ikke være mellemrum i mail adressen"); f.mail.focus(); return false; } else {
if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 || tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 || tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1) { alert ("Adressen må ikke indeholde æ ø å Æ Ø Å , ;"); f.mail.focus(); return false; } else { if (placering<1 || tekst.length<=(placering+1)) { alert ("Mailadressen er forkert - forsøg igen"); f.mail.focus(); return false; } } } }
}
if(f.meddelelse.value=="") { alert("Du skal skrive noget i tekstfeltet!"); f.meddelelse.focus(); return false; } //hvis alle felter er udfyldt error ==0 sendes (submittes)formularen return true; }
PS. Jeg forholdt mig ikke til issues omkring mail-adressen, men jeg synes det er dumt at rejecte en ellers korrekt mail-adresse fordi den f.eks. findes på domænet rødejens.dk el.
-- og min søg og erstat-ting fjernede et par paranteser for meget:
... //hvis det ikke er tomt (er forskelligt fra tomt) testet om der er et snabel a, æ,ø å o.s.v.) else if (f.mail.value!="") { placering=0; tekst=(f.mail.value).toLowerCase(); placering=tekst.indexOf("@"); if(tekst =="") { ...
Synes godt om
Slettet bruger
18. maj 2009 - 13:10#4
Hej roenving Har fået min validering til at virke en. Har slet ikke set, at du har svaret - gad vide hvad der er gået galt.
Kunne heller ikke forstå, jeg selt ingen respons fik.
-- men overvej kraftigt at forlade den dybt forældede måde at benytte javascript-html-binding, som den validering, du har fundet, er udtryk for (og som bl.a. promoveres af et dybt håbløst site som html.dk !-)
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.