2013-10-11 5 views
5

Mam pole wprowadzania i chcę, aby użytkownik kliknął pole wprowadzania, aby pokazać okno dialogowe otwierania pliku i pokazać nazwę pliku w tym samym polu wprowadzania. Ale jeśli użyję typu wejściowego = "plik", pokaże się "wybierz przycisk pliku", nie chcę wyświetlać przycisku. Jak mogę to zrobić?kliknij pole wprowadzania, aby wyświetlić okno dialogowe otwierania pliku, ale nie kliknij przycisk wybierz plik

html:

<div class="fileupload"> 
    <input type="file" class="file" name="image" /> 
</div> 

<div class="fileupload"> 
    <input type="file" class="file" name="attachement" /> 
</div> 

http://jsfiddle.net/EctCK/ ** dont wan to, w jaki sposób ukryć przycisk Plik wybrać?

Odpowiedz

13

Możesz nakładać przezroczysty <input type="file"/> na przycisk stylu lub inny element.

<input type="file" style="opacity:0;"/> 

Zobacz tę pracującą wersję demo pod tytułem JSFiddle.

+1

to naprawdę twórczy Hack! – guest

+1

lub możesz wywołać metodę click() nie wyświetlanego wewnątrz div's onclick() dla lepszej zgodności croos-and-old-browser – tomasb

+0

@SuperScipt, jeśli nie chcę otworzyć okna dialogowego, ale zamiast tego Zapisz jako okno dialogowe Dile? – bleykFaust

7

Cóż, jest trochę hack do tego. Musisz mieć kontrolę przesyłania plików na stronie. Możesz go jednak ukryć i zasymulować kontrolę przesyłania plików za pomocą dowolnej innej kontrolki, takiej jak div/span/button i nadać jej styl według własnego uznania. Oto działająca próbka na jsfiddle.

HTML:

<div id="dummy" class="dummyDiv"> 
    <span>click to chose file:</span> 
    <span id="fileName" class="yellow"></span> 
</div> 
<div class="wrapper"> 
    <input type="file" id="flupld" /> 
</div> 

JS:

$("#dummy").click(function() { 
    $("#flupld").click(); 
}); 

$("#flupld").change(function() { 
    //file input control returns the file path as C:\fakepath\<file name> 
    //on windows, so we remeove it and show only file name. 
    var file=$(this).val().replace(/C:\\fakepath\\/ig,''); 

    $("#fileName").text(file); 
}); 
+0

To jest bardzo dobra sztuczka przy użyciu wyświetlacza: brak – shevy

+0

Czy istnieje sposób wstępnego wyboru nazwy pliku? To znaczy, gdy okno dialogowe jest otwarte, widzi się "sugerowaną" nazwę pliku – Pathros

-1

spróbować:

<input type="file" id="upload" style="display:none"> 
    <a href="" onclick="document.getElementById('upload').click(); return false;"> Upload </a> 

próbka Praca na JSFiddle