Очистка <input type = 'file' /> с помощью jQuery - PullRequest
530 голосов
/ 25 июня 2009

Можно ли очистить управляющее значение <input type='file' /> с помощью jQuery? Я пробовал следующее:

$('#control').attr({ value: '' }); 

Но это не работает.

Ответы [ 27 ]

0 голосов
/ 29 июня 2012

Работает с Chrome, FF и Safari

$("#control").val("")

Может не работать с IE или Opera

0 голосов
/ 11 августа 2012

Это просто (смеется)

$('input[type=file]').each(function(){
    $(this).after($(this).clone(true)).remove();
});

JS Fiddle: http://jsfiddle.net/cw84x/1/

0 голосов
/ 19 апреля 2013

Сделайте его асинхронным и сбросьте его после выполнения необходимых действий кнопки.

    <!-- Html Markup --->
    <input id="btn" type="file" value="Button" onchange="function()" />

    <script>
    //Function
    function function(e) {

        //input your coding here           

        //Reset
        var controlInput = $("#btn");
        controlInput.replaceWith(controlInput = controlInput.val('').clone(true));
    } 
    </script>
0 голосов
/ 27 декабря 2018

у меня не работает:

$('#Attachment').replaceWith($(this).clone());
or 
$('#Attachment').replaceWith($('#Attachment').clone());

поэтому в asp mvc я использую бритвенные функции для замены файлового ввода. сначала создайте переменную для входной строки с идентификатором и именем, а затем используйте ее для отображения на странице и замены при нажатии кнопки сброса:

@{
    var attachmentInput = Html.TextBoxFor(c => c.Attachment, new { type = "file" });
}

@attachmentInput

<button type="button" onclick="$('#@(Html.IdFor(p => p.Attachment))').replaceWith('@(attachmentInput)');">--</button>
0 голосов
/ 08 сентября 2011

$("input[type=file]").wrap("<div id='fileWrapper'/>");
$("#fileWrapper").append("<div id='duplicateFile'   style='display:none'>"+$("#fileWrapper").html()+"</div>");
$("#fileWrapper").html($("#duplicateFile").html());
0 голосов
/ 21 мая 2019

Просто используйте,

 $("#fileUploaderID").val(''); 
0 голосов
/ 22 июня 2011

Что? В вашей функции проверки просто введите

document.onlyform.upload.value="";

Предполагается, что имя для загрузки:

<input type="file" name="upload" id="csv_doc"/>

Я использую JSP, не уверен, что это имеет значение ...

У меня работает, и я думаю, что это намного проще.

...