2012-03-08 30 views
31

Dưới đây là một phần của mã jquery mà tôi có hiển thị đầu vào tệp và nút "Xóa tệp".Cách xóa đầu vào tệp

var $imagefile = $('<input />').attr({ 
    type: 'file', 
    name: 'imageFile', 
    class: 'imageFile' 
}); 

$image.append($imagefile); 

var $imageclear = $('<input />').attr({ 
    type: 'button', 
    name: 'imageClear', 
    class: 'imageClear', 
    value: 'Clear File' 
}); 

$image.append($imageclear); 

Bây giờ lý do tôi có nút "Xóa tệp" là vì nếu bạn nhấp vào nút thì nó sẽ xóa mọi thứ nằm trong đầu vào tệp. Làm thế nào để tôi mã nó để nó thực sự xóa đầu vào tập tin khi tôi bấm vào nút "Clear File"?

+0

Xem này: http://stackoverflow.com/questions/1043957/clearing-input-type-file-using-jquery –

+0

Xem này cũng https://forum.jquery.com/topic/how- to-clear-a-file-input-in-ie –

Trả lời

74

này nên làm việc:

$imageClear.on('click', function() { 
    $imageFile.val(''); 
}); 
+1

Điều đó cũng hoạt động trên IE ... –

+0

Vâng, nó là một mã jQuery * tương đối đơn giản. Nó là một giải pháp đa trình duyệt. –

+2

Guys, '' là 'readonly' sau khi chọn tệp trong> = ** IE8 **, vì lý do bảo mật, đây là [Q] tương tự (http://stackoverflow.com/q/1043957/1548719) và phóng viên [A] (http://stackoverflow.com/a/1188853/1548719) cho giải pháp được đề xuất ở đây. –

5

Đây là phương pháp tôi thích sử dụng cũng nhưng tôi tin rằng bạn cần phải thêm tham số đúng bool đến phương pháp nhân bản để cho bất kỳ sự kiện để vẫn gắn bó với đối tượng mới và bạn cần phải xóa nội dung.

var input = $("#fileInput"); 

    function clearInput() { 
     input = input.val('').clone(true); 
    }; 

https://api.jquery.com/clone/

-1

này hoạt động để

$("#yourINPUTfile").val(""); 
5

Xóa văn bản nhập tập tin với jQuery

$("#fileInputId").val(null); 

Xóa văn bản nhập tập tin với JavaScript

document.getElementById("fileInputId").value = null; 
0

Tôi đã làm một cái gì đó như thế này và nó làm việc cho tôi

$('#fileInput').val(null); 
0

Một giải pháp khác nếu bạn muốn chắc chắn rằng đây là qua trình duyệt có khả năng là để loại bỏ() thẻ và sau đó nối() hoặc thêm vào trước() hoặc theo cách khác, hãy thêm lại một phiên bản mới của thẻ đầu vào có cùng thuộc tính.

<form method="POST" enctype="multipart/form-data"> 
<label for="fileinput"> 
<input type="file" name="fileinput" id="fileinput" /> 
</label> 
</form> 

$("#fileinput").remove(); 
$("<input>") 
    .attr({ 
    type: 'file', 
    id: 'fileinput', 
    name: 'fileinput' 
    }) 
    .appendTo($("label[for='fileinput']")); 
Các vấn đề liên quan