有时通过ajax成功上传完文件后,需要清除input type=”file”域中的值,但是通过Jquery的val()方法对标签设置空值并不能达到目的,可以采用Jquery的clone()方法来达到清空标签值的目的。
详细代码如下:
<input id="upload" type="file">
var file = $("#upload");
// 对当前input标签进行clone并插入其下方
file.after(file.clone().val(""));
// 删除原有的input标签
file.remove();
使用这种方法会导致input标签原本绑定的事件失效,我们可以使用Jquery的动态绑定方法(适用于为动态创建的元素绑定事件),如下:
$('body').on('change', '#upload', function() { // 动态绑定id为upload元素的change事件
// do something...
});