Javascript: hur avbryta en onSubmit?

Tråden skapades och har fått 4 svar. Det senaste inlägget skrevs .
1

Har använt mig av en funktion verify() som jag har anropat vid en onClick() på min submit-button.

Denna funktions funktion är att kontrollera så att vissa textfält är ifyllda, och om de inte är det avbryta submitten med felmeddelande. I kort ser funktionen ut som följer:

function Verify()
{
if (document.form1.titel.value.length < 1)
{
alert("Titel måste fyllas i.");
return false;
}
document.form1.submit();
}

Problemet jag har med den är att om jag anropar den vid en onSubmit() som ligger i forumulär-taggen, så visar den felmeddelande som den ska men den avbryter inte submitten. D v s det verkar som om return false inte har någon inverkan…

Jag gjorde en sådan här grej förra veckan och hade problemet att den visade alerten, men sedan ändå gick vidare och postade till nästa sida. Så här kom jag fram till att man ska bygga upp det:

function Verify(myValue)
{
if (myValue < 1) {
alert("Alert message here");
return false;
}
else {
return true;
}
}

---
<FORM METHOD="post" ACTION="en_fil.php/asp" NAME="form1"
OnSubmit="return Verify(this.element_name.value);" >

Då avbryter den efter att alerten har visats och inget speciellt händer (mer än att användaren förhoppningsvis fyller i det som saknas och sedan försöker igen).

Ja just det nu ser jag ju exakt vad felet är
du har lagt "document.form1.submit()" utanför if-satsen så att den exekveras varenda gång man anropar funktionen. Den kodraden är inte utsatt för ett "testkriterium" s a s.

det blir de här två scenarierna
A
Funktionen anropas
-> kolla if-kriterium
-> om ja, visa alert
-> gå vidare efter if-koll och utför document.form1.submit()

B
Funktionen anropas
-> kolla if-kriterium
-> om nej går vidare
-> utför document.form1.submit()

Njae - "return false" gör att funktionen avbryter, åtminstone om man kallar den via en onClick.

Men jag tror problemet ligger i, när man använder onSubmit, att funktionen skall kallas med en return, enl ditt exempel.

Testar vidare.

/scooter

Jepp, så var det!

return avbryter funktionen i och med att den returnerar ett värde.

Men eftersom jag inte hade ett return i anropet verkar det som att funktionen alltid validierades till true.

Nu funkar det i alla fall - det första man blir blind på är ögonen och de problemen som är störst just nu, förutom viss huvudvärk som straff för gårkvällen, är de som egentligen är minst

1
Bevaka tråden