84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
<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事件