Avatar billede purup Nybegynder
11. marts 2008 - 21:30 Der er 15 kommentarer og
1 løsning

Kan en select box trigger en input-file?

Hej Eksperter

Jeg har en select box hvor man kan vælge et billede. MEN man kan også vælge at uploade et nyt. Det aktiverer automatisk en <input type="file"... i en form
Når man har valgt en fil skulle formen submitte automatisk ved hjælp af onchange på <input type="file"...
...MEN det gør den ikke i IE

Det fungerer i Safari. Det skal også fungere i EI6+


Se: www.tanktrouble.com/test.html

<!-- Hidden browse for image upload. Triggered by select box -->
<form method="post" action="test.html" enctype="multipart/form-data">
    <input type="file" name="file" id="browse" size="1" style="width: 0px;" onchange="java script: this.form.submit();" />
</form>

<!-- select box that lets you upload file -->
<select name="file1" onchange="java script: if (this.value == 'upload') document.getElementById('browse').click();" \>
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="upload">upload</option>
</select>


Hjælp!
Avatar billede kalp Novice
11. marts 2008 - 21:33 #1
prøv at fjerne "java script: "
Avatar billede purup Nybegynder
11. marts 2008 - 21:38 #2
Så er det gjort - ingen forskel: Fungrer fint i Safari, ikke i IE!
Avatar billede kalp Novice
11. marts 2008 - 21:40 #3
okay.. det skal i hvertfald ikke være der under alle omstændigheder:) det er kun ved hyperlinks man angiver javascript.

jeg får desuden en "access denied" fejl når den skal hive fat i en fil fra min disk.
Avatar billede kalp Novice
11. marts 2008 - 21:44 #4
jeg er ikke sikker på der er noget der hedder onchange på type="file"
Avatar billede purup Nybegynder
11. marts 2008 - 21:44 #5
Det gør jeg også - hvorfor det?
Hvis jeg trykker på browse-knappen og vælger en fil submitter form fint!
Avatar billede kalp Novice
11. marts 2008 - 21:46 #6
prøv at ændre "onchange" this "onfocus"

går ud fra den får focus når noget bliver indtastet i den.
Avatar billede kalp Novice
11. marts 2008 - 21:47 #7
ahh okay.. så ser jeg om jeg kan finde noget med sikkerhedsproblemer på det område:)
troede den slet ikke gav fejl hos dig men ikke submittede.
Avatar billede purup Nybegynder
11. marts 2008 - 21:54 #8
den giver fejl når jeg vælger "upload". Men hvis jeg trykker browse gør den ikke. Og begge skulle submitte med onchange!
Avatar billede kalp Novice
11. marts 2008 - 21:54 #9
ser ud til, at man ikke må udfylde type="file" på den måde pga. sikkerhed i IE.
så du skal nok finde en anden fremgangsmåde
Avatar billede purup Nybegynder
11. marts 2008 - 21:56 #10
onfocus ændrer ikke noget
Avatar billede purup Nybegynder
11. marts 2008 - 22:00 #11
det er bare mærkeligt fordi:

trykker jeg browse og vælger en fil trigger unchange som igen trigger submit() - det virker!

select trigger bare browse.click(). Så skulle man tro browse tog den derfra...
Avatar billede kalp Novice
11. marts 2008 - 22:12 #12
Jeg tror ikke du kan med javascript.. så skal du nok over i noget ASPX eller lignende.
Avatar billede olebole Juniormester
12. marts 2008 - 00:41 #13
<ole>

Du kan heldigvis ikke bruge click() på et file-input. Så snart, du begynder at scripte mod den type element, disable's dets evne til at uploade filer.

Hvis ikke denne type input begrænses af _meget_ stramme regler, udgør det en ekstrem sikkerhedsrisiko. Derfor kan du højst aflæse filnavnet på onchange  ;o)

/mvh
</bole>
Avatar billede purup Nybegynder
12. marts 2008 - 15:42 #14
øv...

...men tak for hjælpen. Det er vel kalp der skal have point eftersom han også nåede den konklusion? Smid et svar
Avatar billede kalp Novice
12. marts 2008 - 20:31 #15
:-)
Avatar billede purup Nybegynder
13. marts 2008 - 10:04 #16
Jeg takker
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