首页 > 技术教程 > 解决重复上传 onchange 事件不生效问题

解决重复上传 onchange 事件不生效问题

在做项目的是时候,上传表单使用到了onchange事件,当上传失败后,重复上传该文件,没有反应,发现是onchange没有生效。

onchange的触发条件是当input框的值有变化时才能触发,所以,当上传的文件是同一个文件时不能触发onchange。

例如我的代码:

uploadFile.onchange = function () {
    var formData = new FormData($('form')[0]);
    formData.append('file', $('input[type=file]').attr('name'));
    ......
}

其中有判断当上传失败则提示错误信息这一段:

xhr.addEventListener("load", function (event) {
    var data = eval('(' + xhr.response + ')');
    if(data.code == 0){
        layer.alert(data.msg);
        layer.close(uploadloading);
        return false;
}

解决方法:

当上传失败时,把上传表单的值置空,加上

$("#js-upload-files").val('');
xhr.addEventListener("load", function (event) {
    var data = eval('(' + xhr.response + ')');
    if(data.code == 0){
        layer.alert(data.msg);
        layer.close(uploadloading);
        $("#js-upload-files").val('');
        return false;
}


文章版权声明
1、本网站名称:阿V编程
2、本站永久网址:https://www.1892zyw.com
3、本网站的部分文章内容/部分资源可能来源于网络,仅提供给大家学习或参考,如有侵权,请联系站长QQ进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,如有发现请向站长举报