84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
<input id="inputtest" type="file" accept="image/*"/>这种方式发现在Android上有一个bug就是如果第二次选择的文件跟上一次是同一个文件,则不会触发onchange事件,如果第二次选择的文件跟上一次不是同一个文件,才会触发onchange事件。 请问如何解决?
正如你所说,都是同一个文件,资源又没更新,还要做什么更新呢?onblur / onclick / ontouchstart 等应该都可行吧
上传之后不管成功与否都将input的值设为空, input.value = ""
input.value = ""
onblur,onclick,onchangeps:这个应该不用判断吧。第一次能获取就获取了。没有理解你的需求
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input type="file" onchange="if(this.value!=''){console.log(this.value);this.value='';console.dir(this)}"> <script type="text/javascript"> </script> </body> </html>
用FileReader对象:var fileReader = new FileReader();对比每次的文件信息呗
文件改变才会触发change事件,想要都触发的话,那就click
你的意思是如果同一个文件如果要上传两次,第二次不会触发onchange事件?如果是这样的话,就按照楼上说的,上传有返回之后,无论是不是成功都清空input。正常也应该清空的。至于其他的,感觉onchange够了。差不多能触发的方法大家都说了,onblur(这个好像不太合适),onclick比较好。
完全遇到了一样的问题,DOM结构一个btn、一个隐藏的inputbtn点击事件触发input的change事件
$("#btn_file").change(function () {//btn_file为隐藏的input if($(this).val() == ''){//如果没有选择文件则不触发 return false; } for(var i=0;i<this.files.length;i++){...} $(this).val('');//操作结束清空input中的内容 });
正如你所说,都是同一个文件,资源又没更新,还要做什么更新呢?
onblur / onclick / ontouchstart 等应该都可行吧
上传之后不管成功与否都将input的值设为空,
input.value = ""
代码给你写了,他们都给你说了,我也实现了,你怎么不自己试试呢
onblur,onclick,onchange
ps:这个应该不用判断吧。第一次能获取就获取了。没有理解你的需求
用FileReader对象:
var fileReader = new FileReader();对比每次的文件信息呗
文件改变才会触发change事件,想要都触发的话,那就click
你的意思是如果同一个文件如果要上传两次,第二次不会触发onchange事件?如果是这样的话,就按照楼上说的,上传有返回之后,无论是不是成功都清空input。正常也应该清空的。至于其他的,感觉onchange够了。差不多能触发的方法大家都说了,onblur(这个好像不太合适),onclick比较好。
完全遇到了一样的问题,
DOM结构一个btn、一个隐藏的input
btn点击事件触发input的change事件