Avatar billede dramsgaard Nybegynder
08. december 2004 - 21:21 Der er 16 kommentarer og
2 løsninger

validering af form

jeg bruger flg kode til at kontrollere om alle felter i en form er udfyldt.
Problemet er at hvis et felt mangler at blive udfyldt, forsvinder alt det indtastede i de andre felter når den returnere, hvordan kan man undgå dette?

function submitForm() {

    if (document.form1.overskrift.value=="") {
        alert("Du skal indtaste en overskrift")
        document.form1.overskrift.focus()
        return false;
    }
   
    if (document.form1.nyhed.value=="") {
        alert("Du skal indtaste en nyhed")
        document.form1.nyhed.focus()
        return false;
    }
   
        document.form1.action='update2.asp?method=Add';
   
}
Avatar billede baitianlong Nybegynder
08. december 2004 - 21:32 #1
Du har den vel onSubmit på formen, du kan evt. smide den på en knap

<input type="button" value="Send" onClick="if(submitForm()) document.form1.submit();">
Avatar billede dramsgaard Nybegynder
08. december 2004 - 21:37 #2
nej jeg havde type="submit" istedet for type="button"

så det var næsten rigtigt : )

du kan lige komme med et svar hvis du vil have point...
Avatar billede dramsgaard Nybegynder
08. december 2004 - 22:27 #3
hmm nu sker der pludselig ikke noget når jeg trykker på opret knappen, og formualeren er udfyldt korrekt...kan ikke lige se hvad jeg har kommer til at ændre
det må vel være noget med en af flg lininer eller hvad?

document.form1.action='update2.asp?method=Add';

<input type="button" name"submit" value="Opret" onClick="java script:submitForm();"/>
Avatar billede baitianlong Nybegynder
08. december 2004 - 23:04 #4
Yes, du skal have den som action på formen, så tror jeg det hele er fint:

<form name="form1" action="update2.asp?method=Add">
........
<input type="button" name"submit" value="Opret" onclick="if(submitForm()) document.form1.submit();" />

Sådan der :)

Siden du bruger < /> på ikke "åbne/lukke" tage, formoder jeg du validerer med XHTML, derfor skal onClick være onclick (ikke camelcase)... Med denne version skulle det virke fint (Fjern submit fra funktionen. Den returnerer boolean true hvis det hele er ok og så vil formen validere og submitte...
Avatar billede dramsgaard Nybegynder
08. december 2004 - 23:13 #5
hmm ja men hvis jeg sætter action i formen får jeg et andet problem, da der er flere submit knapper. derfor bruger jeg på hver submit knap "this.form.action"

hvad mener du med fjern submit fra funktionen?
Avatar billede baitianlong Nybegynder
08. december 2004 - 23:22 #6
Ok, men hvis een knap er en type="submit" og de ander er type="button" vil submit-fætteren blive udløst f.eks ved tryk på return... Derfor bliver du nok nødt til at lave de forskellige knapper til type="button" og definere specifikt hvad der skal ske onclick.

F.eks. onclick="document.form1.method='add'; if(submitForm()) document.form1.submit();"

Men method er nok under alle omstændigheder et "dårligt ord, da method er "post" eller "get"... skift evt. til funktion=add eller noget lign.
Avatar billede dramsgaard Nybegynder
10. december 2004 - 14:04 #7
hmm det virker fint når der står en url i action i form tag'et, men så snart websiden som formularen er på indeholder en QueryString ex. admin-nyheder.asp?id=47 får jeg flg fejl når jeg trykker på knappen til formularen:

"Error: Object doesn't support this property or mthod"

og den referer til denne linje:
document.form1.submit()

hvad kan der være galt??
Avatar billede roenving Novice
10. december 2004 - 14:08 #8
function submitForm(f) {

    if (f.overskrift.value=="") {
        alert("Du skal indtaste en overskrift")
        f.overskrift.focus()
        return false;
    }
   
    if (f.nyhed.value=="") {
        alert("Du skal indtaste en nyhed")
        f.nyhed.focus()
        return false;
    }
   
    f.action='update2.asp?method=Add';
    return true;
   
}

-- felternes værdi forsvinder med garanti, fordi formen reloades, så formtagget skal se nogenlunde sådan ud:

<form action="" method="post" onsubmit="submitForm(this);">
Avatar billede dramsgaard Nybegynder
10. december 2004 - 15:44 #9
roenving> felternes værdi forsvinder ikke...jeg kan heller ik lige få dit eksempel til at virke

formen er på en ASP side, og den bruges til enten at redigere eller oprette en ny nyhed.
Hvis det er en ny nyhed ser sidens url sådan ud:
admin-nyheder.asp
...det virker fint nok
hvis det er en nyhed der skal redigeres ser siden url sådan ud:
admin-nyheder.asp?id=etTal
....og det er her jeg får fejlen når jeg vil submitte
formen bliver submittet med knappen:
<input name="Button" type="button" value="Opret" onclick="if(submitForm()) document.form1.submit();" />
url'en ligger i action i form tag'et
Avatar billede roenving Novice
10. december 2004 - 15:58 #10
Brug i stedet en submit-knap:

<input name="Button" type="submit" value="Opret" />

-- og så den slags form-tag, men jeg havde li'e glemt en væsentlig detalje:

<form action="" method="post" onsubmit="return submitForm(this);">
Avatar billede dramsgaard Nybegynder
10. december 2004 - 16:11 #11
kan jeg sætte en action med url'en ind på submit-knappen?
det er jo to forskellige url'er der skal sendes til afhæning af om det er en opdatering eller en ny nyhed
Avatar billede roenving Novice
10. december 2004 - 16:12 #12
Ja !-)
Avatar billede roenving Novice
10. december 2004 - 16:13 #13
Du kan jo f.eks. bruge forskellige submit-knapper !-)
Avatar billede dramsgaard Nybegynder
10. december 2004 - 16:17 #14
ja det har jeg os' men kan jeg så bare sætte
this.form.action='URL'; ind på submit knappen også slette  f.action='update2.asp?method=Add'; fra funktionen eller hvordan....fatter ik så meget af det der js desværre
Avatar billede roenving Novice
10. december 2004 - 16:19 #15
Ja, præcis !o]
Avatar billede dramsgaard Nybegynder
10. december 2004 - 16:33 #16
hmm fantastisk det ser ud til at virke :)

hvis du kommer med et svar får du nogle point..
Avatar billede roenving Novice
10. december 2004 - 16:40 #17
Velbekomme '-)
Avatar billede roenving Novice
10. december 2004 - 16:51 #18
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester