Permalänk
Medlem

[JScript] Nästlade if-satser

Jag håller på att göra en gästbok och nu är det sista kvar att göra, mitt JScript för att slippa felaktiga inlägg.
Men det är några saker jag undrar över.

<!-- Begin function fixElement(element, message) { alert(message); element.focus(); } function gb(form) { var passed = false; if (form.gbnamn.value.length < 3) { fixElement(form.gbnamn, "Ditt namn måste innehålla minst 3 tecken."); } else if (form.gbemail.value.length > 0) { if (form.gbemail.value.indexOf("@") == -1 || form.gbemail.value.indexOf(".") == -1) // - Se raden under, annars hamnar den utanför tråden - {//Här "stannar" skriptet. Jag försökte med en break; men då fick jag felmeddelande om att jag bara kan ha break; i loopar... fixElement(form.gbemail, "Din email är inte giltig."); //Eller det är egentligen exakt här den stannar. } } else if (form.gbhemsida.value.length > 0 && form.gbemail.value.indexOf(".") == -1) { fixElement(form.gbmeddelande, "Hemsidan är inte giltig."); } else if (form.gbmeddelande.value.length < 3) { fixElement(form.gbmeddelande, "Meddelandet måste innehålla minst 3 tecken."); } else { passed = true; } return passed; } // End -->

Läs dom oranga kommenterarna, där förklarar jag felen...

//Krille

Permalänk
Medlem

Som jag förstår det vill du att varje if-sats ska köras vid kontroll? Som det är nu så utförs bara ett vilkor. Detta p.g.a att du använder if else. Om du vill att alla if satser ska köras får du ta bort else. exempel.

function gb(form) { var passed = true; if (form.gbnamn.value.length < 3) { fixElement(form.gbnamn, "Ditt namn måste innehålla minst 3 tecken."); passed = false; } if (form.gbemail.value.length > 0) { if (form.gbemail.value.indexOf("@") == -1 || form.gbemail.value.indexOf(".") == -1) // - Se raden under, annars hamnar den utanför tråden - {//Här "stannar" skriptet. Jag försökte med en break; men då fick jag felmeddelande om att jag bara kan ha break; i loopar... fixElement(form.gbemail, "Din email är inte giltig."); passed = false; //Eller det är egentligen exakt här den stannar. } } if (form.gbhemsida.value.length > 0 && form.gbemail.value.indexOf(".") == -1) { fixElement(form.gbmeddelande, "Hemsidan är inte giltig."); passed = false; } if (form.gbmeddelande.value.length < 3) { fixElement(form.gbmeddelande, "Meddelandet måste innehålla minst 3 tecken."); passed = false; } return passed; }

Permalänk
Medlem

Tack, fungerar bra.
Har en till fråga... Nu måste gbhemsida innehålla en punkt.
Jag skulle vilja göra att den måste innehålla MINST en punkt.

if (form.gbhemsida.value.length > 0 && form.gbemail.value.indexOf(".") == -1)

Hur gör jag då?

Permalänk
Medlem

du gör precis som du gjort med gbemail.

EDIT: ah såg att du gjort fel i din urpsrungskod. byt ut gbemail mot gbhemsida i din if-sats ovan