Bootstrap fileinput插件删除未上传文件的坑

个人比较看好的中文文档:http://bootstrap-fileinput.com/options.html

背景

上传文件或图片,判断名称是否符合规则、不可重名。

初期实现思路

全局定义变量filenames,存储已上传文件名。
在filebatchselected事件回调函数中,获得选中文件的文件名,判断是否在filenames中(判断命名规则),若无可选中,名称添加至filenames中。若有,选中.kv-file-remove(按钮的类名),点击事件,删除。调用删除回调函数filesuccessremove(删除本次上传的文件后)或filedeleted(删除之前上传此次回显的文件后),在其中处理filenames。

问题

当文件名称错误,调用$(".kv-file-remove").click()时,删除错误文件成功,但是会导致之后的所有删除操作不再触发事件回调函数。意味着无法在操作filesnames。
也无法在filebatchselected中判断名称后处理filenames,因为即使此次删除,处理了filenames,但是再删除之前上传的文件时,由于kv-file-remove按钮失效,无法调用删除方法且无法处理filenames。

解决思路

1.重写.kv-file-remove的click事件。(我失败了…)
2.上传后点击删除,不会出现上述问题。
做成自动上传,在filebatchselected中$(this).fileinput(‘upload’);实现自动上传。
之后在fileuploaded进行名称和判断。

备注

上传同名文件时,插件原设置为无法选择,即在浏览文件窗口无法再次选择同名文件,选择了没反应,给用户体验不好,所以走了这么一圈。
这个方案缺点:回发送两次无用请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值