代码片段 → jQuery代码片段 → 清空文件输入 清空文件输入 Chris Coyier 于 2013年1月16日 您可以克隆它并用自身替换它,所有事件仍然附加。 var input = $("#control"); function something_happens() { input.replaceWith(input.val('').clone(true)); };
多次点击“清除”按钮不起作用。
不起作用……
我这里也是,示例只在第一次有效。
选择不同的文件会将“已更改”输出到控制台,但点击“清除”链接没有任何反应。
Win7/Chrome 26
我相信它不起作用,因为变量“controlBn”只赋值一次(第一次等于$(‘#control’))。并且由于该元素正在被其新的克隆替换,因此变量“controlBn”在之后可能指向一个不存在的元素。
我会只使用
$('#clear').on('click' ,function(){
$('#control').replaceWith( $('#control').val('').clone( true ) );
});
而不是上面的代码
(只是猜测)
虽然.val(”) 对FF有效,但对IE无效。
.val(”) 在IE11中不起作用。我们可以设置.value = null; 这在IE11中有效吗?
谢谢。这正是我需要的。完美地工作;)
@dibiler 的解决方案非常有效。
control
变量必须在click
回调函数中重新初始化。一个有效的演示可在此处获取 – http://jsfiddle.net/jesin/FEKrz/
太棒了!
太棒了!
嘿……太棒了!但对FILE类型不起作用 :-(
谢谢,对我很有帮助 :)
我看到有人抱怨清除按钮无法多次使用……
一个更简单的解决方案怎么样,例如
document.getElementById(“control”).value = “”;
完美!!!!
@Qiasar = 你真是太厉害了 :)
$(“#clear”).click(function(){
$(“#control”).val(”);
});
这是错误的吗 ????
@Darbez
等等,你是说
是错误的,还是你在提问?
因为我在提问。这样做有什么问题吗?
ie-8 支持,尽情享受吧=) 我的名字是Maxmaxmaximus
清除表单
伙计们,这段代码有效
document.getElementById(“control”).value = “”;
这对我有用
$(‘#control’).val(”);
谢谢!这对我有用!
我倾向于通过将
files
属性重置为空FileList
来重置FileInput。[inputTypeFile].files = new DataTransfer().files
其中[inputTypeFile] = 类型为文件的HTMLInputElement。