2009-09-13 21 views

Trả lời

19

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

giá trị của loại DOMString
Khi kiểu thuộc tính của nguyên tố này có giá trị "văn bản", " tập tin" hay "password", điều này thể hiện các nội dung hiện tại của điều khiển biểu mẫu tương ứng, trong một tác nhân người dùng tương tác.

<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

tôi sử dụng javascript này:

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

với html này cho nút file:

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

hy vọng rằng sẽ giúp!

+0

Tôi nghĩ đây là câu trả lời hay nhất. Nếu bạn muốn làm như một yêu cầu AJAX khi ai đó chọn một tập tin, chức năng 'onchange' là những gì bạn muốn. Nếu bạn chỉ cần sử dụng 'onclick' nó sẽ kích hoạt khi hộp thoại chọn tập tin được mở ra, nhưng trước khi một tập tin được chọn. –

+1

nó không hoạt động trong chrome ... nếu bạn chọn một tệp thì bạn không chọn tệp nào nữa thì tệp_selected vẫn đúng là không đúng. –

0

Vì vậy, cho phép nói rằng bạn có một số hình thức html và bạn có một đầu vào tùy chỉnh tập tin tải lên:

<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;"> 

Và bạn muốn kiểm tra tên tập tin của tập tin người dùng đã chọn/chọn:

Sử dụng 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

Đối với những người sử dụng requireJS:

$("input:file").change(function() { 
    var fileName = $(this).val(); 
    alert(fileName); //Do with the filename whatever you want 
}); 
Các vấn đề liên quan