Avatar billede kgp43 Nybegynder
26. maj 2005 - 12:01 Der er 11 kommentarer og
1 løsning

Check form før submit

Hejsa,

Har en upload form hvor mine brugere kan uploade en fil. Når de uploader filen checkes der om filtypen er tilladt (gif, bmp, zip), om den er for stor (max 1MB) og om de to felter "title" og "description" er udfyldte.

Problemet opstår når der er en fejl, da den først poster fejlen når filen er uploaded.
Er det muligt at checke dette (eller dele af) med JS (onsubmit)?
Avatar billede roenving Novice
26. maj 2005 - 12:14 #1
Du kan checke for fil-type og om felter er udfyldt, men ikke på filens størrelse, da det på klienten kræver adgang til filsystemet, og det har man kun, hvis man svarer ja til at køre skadeligt indhold i IE !-)
Avatar billede roenving Novice
26. maj 2005 - 12:18 #2
men f.eks.

<script type="text/javascript">
function valider(f){
  var fil = f.fileInput.value;
  if(!fil.match(/\.(gif|bmp|zip)$/i)){
    alert("Du kan kun oplade .gif-, .bmp- og .zip-filer !-)");
    return false;
  }

  if(f.title.value == ""){
    alert("Du skal angive en titel !-)");
    return false;
  }

  if(f.description.value == ""){
    alert("Du skal angive en beskrivelse !-)");
    return false;
  }

  return true;
}
</script>

-- og så:

<form action="..." method="post" onsubmit="return valider(this)">
Avatar billede kgp43 Nybegynder
26. maj 2005 - 12:24 #3
skal koden ikke placeres i head? Er det muligt at brugen den i body?
Avatar billede roenving Novice
26. maj 2005 - 12:26 #4
Det er ligegyldigt hvor koden placeres (indenfor <htnl></html> !-), men jeg plejer at placere al javascript-kode i head-sektionen mens jeg udvikler, for så er det nemt at lægge ud i en ekstern fil, når siden går i produktion !-)
Avatar billede kgp43 Nybegynder
26. maj 2005 - 12:29 #5
okay :)

Jeg har allerede en onsubmit på min form, hvordan tilføjer jeg valider(this)?

onsubmit="this.elements['submit'].value='Uploading...';this.elements['submit'].disabled='disabled';"
Avatar billede roenving Novice
26. maj 2005 - 12:36 #6
bare bagest:

onsubmit="var send=valider(this);if(send){this.elements['submit'].value='Uploading...';this.elements['submit'].disabled='disabled';}return send;"

-- nåeh nej, for så skulle knappen jo ikke disables !-)
Avatar billede kgp43 Nybegynder
26. maj 2005 - 12:43 #7
Avatar billede roenving Novice
27. maj 2005 - 13:02 #8
Du skal huske at bruge de navne, du har givet felterne i scriptet:

  var fil = f.fileInput.value;// <-- her skal du ændre til dit aktuelle felt-navn !-)
Avatar billede kgp43 Nybegynder
27. maj 2005 - 13:28 #9
Det virkede :)

Så det er ikke muligt at checke om filen er for stor inden den begynder at uploade den til tmp folderen?
Avatar billede roenving Novice
27. maj 2005 - 13:42 #10
Nej, du kan ikke checke fil-størrelse uden adgang til filsystemet ...

-- els velbekomme '-)
Avatar billede kgp43 Nybegynder
27. maj 2005 - 13:50 #11
takker for hjælpen
Avatar billede roenving Novice
27. maj 2005 - 14:11 #12
-- og jeg takker 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