上传文件或图片时选择相同文件无法触发change事件的问题

    其实很简单,当选择完一个文件之后,会将文件名存放在input中的value值中,当下一次change之后,比对玩发现,value值没有发生变化,所以不能触发。

所以,只需要下次将value值清空就ok了;

第一步:找到节点

var _input = $('#fileToUpload');

第二步:清空数据

_input.val('');//及时清空避免二次选择同一文件不能触发change事件

    话不多说直接上代码:

//批量导入用户
    $(document).on('change','#fileToUpload', function () {
        AddressBook.uploadFile();
    });
uploadFile: function () {
        var file = $('#fileToUpload').val();
        var _input = $('#fileToUpload');
        if (file != '') {
            var filename = file.replace(/.*(\/|\\)/, '');
            var fileext = (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename.toLowerCase()) : '';
            //检查文件格式
            if (fileext == 'xlsx' || fileext == 'xls') {
                var formData = new FormData($("#uploadForm")[0]);
                $.ajax({
                    url: OC.filePath('address_book', 'ajax', 'PHPExcel.php'),
                    type: 'POST',
                    data: formData,
                    async: false,
                    cache: false,
                    contentType: false,
                    processData: false,
                    success: function (json) {

                        if (json.status == "success") {
                            _input.val('');//及时清空避免二次选择同一文件不能触发change事件
                            OC.dialogs.alert(t('settings', json.data.msg), t('settings', 'Notice'), true);
                            var userlists = json.data.userlists;
                            if (userlists != "") {
                                $.each(userlists, function (k, row) {
                                    if(!row.isRepeat) {
                                        $('#applytable').datagrid('insertRow',{
                                            index: k,
                                            row: {
                                                id : row.id,
                                                name : row.name,
                                                contact: row.contact,
                                                room: row.room,
                                                groups: row.groups

                                            },//节点数据
                                        });
                                    }

                                })
                            }
                        } else {
                            OC.dialogs.alert(t('settings', json.message), t('address_book', 'Warning'), true);
                        }

                    },
                    error: function (json) {
                        OC.dialogs.alert(t('settings', json.message), t('address_book', 'Warning'), true);
                    }
                });

            } else {
                OC.dialogs.alert(t('address_book', "filetype must be '.xls' or '.xlsx'."), t('address_book', 'Warning'), true)

            }
        } else {
            OC.dialogs.alert(t('address_book', "please chose file which filetype is 'excel'"), t('address_book', 'Warning'), true);
        }
    }



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值