如何清除文件输入

use*_*690 60 jquery

下面是我的jquery代码的一部分,它显示文件输入和"清除文件"按钮.

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);
Run Code Online (Sandbox Code Playgroud)

现在我有"清除文件"按钮的原因是因为如果你点击按钮,它将清除文件输入中的任何内容.我如何对其进行编码,以便在单击"清除文件"按钮时实际清除文件输入?

Gui*_*sel 132

这应该工作:

$imageClear.on('click', function() { 
    $imageFile.val(''); 
});
Run Code Online (Sandbox Code Playgroud)

  • 在> =**IE8**中选择文件后,伙伴们,`<input type = file />`是`readonly`,出于安全考虑,这里是类似的[Q](http://stackoverflow.com/q/ 1043957/1548719)和通讯员[A](http://stackoverflow.com/a/1188853/1548719)提出了这里提出的解决方案. (3认同)

Arv*_*ake 30

使用jQuery清除文件输入

$("#fileInputId").val(null);
Run Code Online (Sandbox Code Playgroud)

使用JavaScript清除文件输入

document.getElementById("fileInputId").value = null;
Run Code Online (Sandbox Code Playgroud)


Sha*_*ati 10

对于反应用户

e.target.value = ""
Run Code Online (Sandbox Code Playgroud)

但是,如果文件输入元素是由不同的元素(带有htmlFor属性)触发的 - 这将意味着您没有该事件

所以你可以使用参考:

在函数开始处:

const inputRef = React.useRef();
Run Code Online (Sandbox Code Playgroud)

在输入元素上

<input type="file" ref={inputRef} />
Run Code Online (Sandbox Code Playgroud)

然后在 onClick 函数上(例如)你可以写

inputRef.current.value = "" 
Run Code Online (Sandbox Code Playgroud)
  • 在 React Classes 中 - 相同的想法,但构造函数有所不同:this.inputRef = React.createRef()


med*_*ari 7

这是我喜欢使用的方法,但我相信您需要将bool true参数添加到clone方法中,以便任何事件保持与新对象的连接,并且您需要清除内容.

    var input = $("#fileInput");

    function clearInput() {
        input = input.val('').clone(true);
    };
Run Code Online (Sandbox Code Playgroud)

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


小智 6

通过设置$("ID").val(null),为我工作


小智 6

get input id 并 put val 为空,如下所示: 注意:不要在 val 空双引号 val(" ") 之间放置空格。

 $('#imageFileId').val("")
Run Code Online (Sandbox Code Playgroud)