Just nu i M3-nätverket
Gå till innehåll

onSubmit


Joakim Andersson

Rekommendera Poster

Joakim Andersson

Hur gör man för att kontrollera data innan man skickar dem. Vad jag vill göra är allstå att skapa ett script som jag kör onSubmit och som avbryter skickandet av formuläret om det innehåller felaktiga data.

 

Det är just avbrytandet som jag inte fixar. Nej, det går inte att lägga ett script som först kollar och sedan gör submit() utan det måste vara onSubmit.

 

Tack på förhand

Länk till kommentar
Dela på andra webbplatser

Joakim Andersson

jag omformulerar frågan lite grann.

 

Det fungerar om man submittar formuläret genom att trycka enter eller använder sig av en submit men inte om man använder metoden submit(). Den verkar inte bry sig om onSubmit när man använder sig av submit().

 

Varför? Ska det vara så eller har jag missat något?

Länk till kommentar
Dela på andra webbplatser

Gunnar Liljas

onSubmit="return testform();"

 

..och i funktionen testform (eller vad du nu vill kalla den) returnerar du false eller true, beroende på om submit:en ska släppas igenom.

 

function testform(){

if(det är fel){

return false;

} else {

return true;

}

}

 

 

Länk till kommentar
Dela på andra webbplatser

G Johansson

du kan också gå förbi och skriva ett onClick kommando på en knapp och inte ha någon submit-knapp över huvudtaget. Detta onClick kommando kan sedan anropa ditt formulär enligt form.submit() som vanligt.

 

//Fantomen

cgaj@hotmail.com

Länk till kommentar
Dela på andra webbplatser

Joakim Andersson

Jo så kan man ju göra men det går inte som jag även skrev.

 

Jag måste kunna trycka enter i formuläret och då är det ju bara onSubmit som gäller.

 

 

Länk till kommentar
Dela på andra webbplatser

G Johansson

Har du kollat liljas här under. Måste du kunna trycka enter så JA! Det är onSubmit() som gäller och gör som skriver här under då return false blir så avbryts det och det blir ingen submit()

 

//Fantomen

cgaj@hotmail.com

Länk till kommentar
Dela på andra webbplatser

Joakim Andersson

Jo men problemet är att ibland behöver jag använda submit() och då aktiveras inte onSubmit och alltså måste jag göra samma sak på flera ställen och det vill jag inte.

 

 

 

Länk till kommentar
Dela på andra webbplatser

G Johansson

Vad som betyder vad:

onsubmit()

Här skriver du vad som ska hända när du trycker på submit-knappen eller enter tangenten när du fyllt i ditt formulär

 

submit()

Här skickar du vidare formuläret till ett cgi-script eller liknande så det kan starta

 

Alltså. Först använd onsubmit() skriv din kod som ska användas sen när det är okej (return true) då kör submit() så det kör det du har skrivit som action i form-taggen.

 

Skicka ditt script till mig på cgaj@hotmail.com så får jag ta mig en titt så ska jag hjälpa dig

 

 

 

//*'Fantomen'*\cgaj@hotmail.com

Länk till kommentar
Dela på andra webbplatser

Joakim Andersson

Det är alltsåp så det betyder!

 

Jag trodde att metoden submit() skulle fungera på samma sätt som om man tryckte på en submitknapp eller som om man tryckte enter i ett fält (det låter åtminstone så tycker jag).

 

Tydligen hade jag fel vilket var synd. Jag har i alla verje fall tagit mig runt problemet även om lösningen inte blev så snygg som jag hade tänkt mig.

 

Tack för hjälpen i alla fall.

 

/Jocke

 

 

Länk till kommentar
Dela på andra webbplatser

G Johansson

Vad är det du försökte göra.

Jag blev lite ställd nu. submit() funkar på det sätt du skrev här men onsubmit() prioriteras och skrivs inne i form-taggen så den körs först sen får du manuellt via ett skript från onsubmit() köra submit() som skickar formen till ett cgi-script typ.

 

 

 

//*'Fantomen'*\cgaj@hotmail.com

Länk till kommentar
Dela på andra webbplatser

  • 3 years later...

ok... men vet ni hur man gör detta för asp.net?

 

när användaren klickar på cancle så ska inget submittas, men när det klickas ok, så ska funktionen på serversidan köras (btnSave.ServerClick).. vet ni?

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...