hallmertMedlem sedan dec. 2004182 inlägg <script type="text/javascript">
}
function validateForm() {
if (document.f.fnamn.value=="") {
alert("Du måste ange ditt förnamn.");
return false;
} else if (!document.f.enamn.value=="") {
alert("Du måste ange ditt efternamn.");
return false;
} else if (!document.f.stad.value=="") {
alert("Du måste ange vart du bor.");
return false;
}
</script>
Vad är fel här?
Anroppar allt med
<form name="f" method="post" onSubmit="return validateForm()" action="presentation_andraprocess.asp?ID=<%=Session("id")%>">
dectgapMedlem sedan sep. 20021 655 inlägg Måsvingen som du har skrivit på raden innan function validateForm ska egentligen stå efter funktionen, så här:
<script type="text/javascript">
function validateForm() {
if (document.f.fnamn.value=="") {
alert("Du måste ange ditt förnamn.");
return false;
} else if (!document.f.enamn.value=="") {
alert("Du måste ange ditt efternamn.");
return false;
} else if (!document.f.stad.value=="") {
alert("Du måste ange vart du bor.");
return false;
}
}
</script>
Och så var det det här med grammatik :)
http://www.webforum.nu/showthread.php?s=&forumid=103&threadid=106500
andy-80Medlem sedan jan. 200537 inlägg Jag kan ha fel, men är inte din kontroll motsägelsefull?
Dvs du säger:
OM enamn.value INTE är tomt så kommer alert
else if (!document.f.enamn.value=="")
Borde det inte vara så att om det ÄR tomt så ska alert köras. Dvs ta bort !, i början av else satserna.
Sen måste du väl ha en return true sist också som godkänner formuläret om allt ÄR ifyllt:
<script type="text/javascript">
}
function validateForm() {
if (document.f.fnamn.value=="") {
alert("Du måste ange ditt förnamn.");
return false;
} else if (!document.f.enamn.value=="") {
alert("Du måste ange ditt efternamn.");
return false;
} else if (!document.f.stad.value=="") {
alert("Du måste ange vart du bor.");
return false;
}
return true;
</script>
Sen tror jag(inte helt säkert dock) att du skall ha
onsubmit=validateForm(this);
andy-80 skrev:
Sen tror jag(inte helt säkert dock) att du skall ha
onsubmit=validateForm(this);
Nej så här skall det vara:
<form ... onsubmit="return validateForm();">
Alternativ metod:
<script type="text/javascript">
function validateForm() {
...
}
// OBS utan () efter med denna metod
document.f.onsubmit = validateForm;
</script>
andy-80 » Jag håller med om det där med !. Dock så har du kopierat den urprungliga koden, med }-tecknet felplacerat.
andy-80Medlem sedan jan. 200537 inlägg det gjorde jag kanske ja... sorry ´bout that!
Vad tror du om det med att man ska ha ett return true innan sista måsvingen?
Annars kan ju funktionen bara resultera i false, vilket aldrig kommer godkänna inmatningarna?
För övrigt ska inte "this" stå i parentesen på funktionen så den vet vilket formulär som ska "godkännas"?
dectgapMedlem sedan sep. 20021 655 inlägg
andy-80 skrev:
det gjorde jag kanske ja... sorry ´bout that!
Vad tror du om det med att man ska ha ett return true innan sista måsvingen?
Annars kan ju funktionen bara resultera i false, vilket aldrig kommer godkänna inmatningarna?
Det är bra att skriva ut det, men det kommer att fungera utan. Om funktionen inte returnerar något kommer onsubmit alltså att gå igenom.
andy-80 skrev:
För övrigt ska inte "this" stå i parentesen på funktionen så den vet vilket formulär som ska "godkännas"?
Det är också en bra idé att använda en referens till formuläret istället för att hårdkoda formulärets namn, men så länge formuläret i exemplet heter f, och det inte uppstår någon namnkonflikt, så ska det fungera.
andy-80Medlem sedan jan. 200537 inlägg Jaha, där ser man!
Man lär sig något nytt varje dag!
=)