2009-09-13 17 views

Odpowiedz

19

http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-49531485 mówi:

wartość typu DOMString
Gdy atrybut typ elementu ma wartość „tekst”, „ plik” lub „hasło”, to oznacza bieżącą zawartość odpowiedniej kontroli formie, interaktywny agent użytkownika.

<html> 
    <head><title>...</title> 
    <script type="text/javascript"> 
     function foo() { 
     var f = document.getElementById("f1"); 
     alert(""==f.value ? "nothing selected" : "file selected"); 
     } 
    </script> 
    </head> 
    <body> 
    <form> 
     <div> 
     <input id ="f1" type="file" name="x" /> 
     </div> 
    </form> 
    <button onclick="foo()">click</button> 
    </body> 
</html> 
6

Używam tego javascript:

var file_selected = false; 
function showNoFile() { 
    if(!file_selected) { alert('No file selected!'); } // or anything else 
} 

z tym html do przycisku pliku:

<input type='file' onchange="file_selected = true;" ...> 
.... 
<input type='submit' onclick='showNoFile();'> 

nadzieję, że pomoże!

+0

Myślę, że to najlepsza odpowiedź. Jeśli chcesz wykonać żądanie AJAX, gdy ktoś wybierze plik, funkcja 'onchange' jest tym, czego potrzebujesz. Jeśli po prostu użyjesz 'onclick', zostanie ono uruchomione po otwarciu okna dialogowego wyboru pliku, ale przed wyborem pliku. –

+1

nie działa w chrome ... jeśli wybierzesz plik, nie wybierzesz ponownie pliku, parametr file_selected pozostanie prawdziwy, co jest nieprawidłowe. –

0

Więc powiedzmy, że masz jakąś formę HTML i masz wejście niestandardowy plik Dodano:

<label for="imageUploadButton"> 
<span class="btn" style="padding-left: 10px;">Click here for uploading a new picture</span> 
</label> 
<input type="file" name="avatar_picture" accept="image/gif,image/jpeg,image/png" id="imageUploadButton" style="visibility: hidden; position: absolute;"> 

I chcesz sprawdzić nazwę pliku użytkownik wybrał/Akcja:

Używanie jQuery

<script type="text/javascript"> 
    $(function() { 
    $("input:file").change(function(){ 
     var fileName = $(this).val(); 
     alert(fileName); //Do with the filename whatever you want 
    }); 
    }); 
</script> 

@https://stackoverflow.com/a/5670938/2979938

Dla osób używających requireJS:

$("input:file").change(function() { 
    var fileName = $(this).val(); 
    alert(fileName); //Do with the filename whatever you want 
}); 
Powiązane problemy