处理同一页面中借助form+input[type="file"]上传图片出现的input无法清空问题

简介:        今天下午帮同事改了这样一个bug:                       在一个页面中对多张图进行上传时,由于input的value无法情况的问题,导致每次选完图片后,都跟第一张图片一样,无法出现如下效果:                 ...



       今天下午帮同事改了这样一个bug:

          

           在一个页面中对多张图进行上传时,由于input的value无法情况的问题,导致每次选完图片后,都跟第一张图片一样,无法出现如下效果:


        



          

                百度了下思路:先将input取到,然后放到一个临时form里面清空,最后删掉form.



          代码如下:

  

          首先是生成图片选择和显示部分的绑定代码:


        

 var img_tmp = '<tr><td><input type="text" name="code" value="" style="width: 90%; display: none;"><input type="text" name="title[]" style="width:90%;" /></td><td><input type="text" name="sort[]" style="width:90%;" /></td><td><input type="text" name="num[]" style="width:90%;"/></td>' +
                                                '<td><img alt="" src="" id="" name="img[]" style="max-width: 100px; max-height: 100px; display: block; float: left; border: 1px solid #E6E7EB;" /><div class="file_box">' +
                                                '<input type="button" class="btn" value="选择图片" />'+
                                                '<input type="file" name="fileLOGO" class="file" id="" style="width: 80%;" onchange="UploadImages(this)" />' +
                                                '</div></td>' +
                                                '<td><a class="del" href="javascript:void(0)">删除</a></td></tr>';


           在onchange="UploadImages(this)" 这里的方法中,我们传入本次点击的input,进行提交:



       

//多图片上传       
        function UploadImages(FileInput) {
            //var isno = fileChange($(FileInput));
            //if (isno == undefined) {
            var options = {
                type: "POST",
                url: '../Handler/AshxUploadFile.ashx?type=Images',
                success: function (msg) {
                    if (msg == "error") {
                        clearImages($(FileInput));
                        showerrortip("上传失败");
                    } else {
                        if (msg != "errortype") {
                            clearImages($(FileInput));
                            $(FileInput).parent().prev("img").attr("src", strPic + msg);
                            clearImages($(FileInput));
                            $(FileInput).attr("style", "");

                        }
                    }

                }, error: function (msg) {
                    clearImages($(FileInput));
                    $(FileInput).attr("style", "");
                    showerrortip("参数异常!");
                }
            };
                // 将options传给ajaxForm
                $('form').ajaxSubmit(options);
               

            //} 

        }



          当时因为忽略了对input的清理,才导致了那个问题,为此,加入clearImages函数:



              

function clearImages(selector) {
            var fi;
            var sourceParent;

            if (selector) {
                fi = $(selector);
                sourceParent = fi.parent();
            }
            else {
                return;
            }

            $("<form id='tempForm'></form>").appendTo(document.body);

            var tempForm = $("#tempForm");

            tempForm.append(fi);
            tempForm.get(0).reset();

            sourceParent.append(fi);
            tempForm.remove();


        }

          这样,就利用临时form清空了input.









目录
相关文章
|
Kubernetes 安全 测试技术
多环境镜像晋级/复用最佳实践
本文介绍了在应用研发场景中,如何通过阿里云服务实现镜像构建部署的高效和安全。主要关注两个实践方法来确保“所发即所测”。
46288 9
|
域名解析 缓存 负载均衡
CDN实践配置+原理篇
CDN实践配置+原理篇 前几天配置了下自己在阿里云的对象存储中的CDN加速,这里记录写个教程为引入,来讲解一下CDN的相关原理及过程,希望对你有所帮助
1215 0
|
算法 TensorFlow 算法框架/工具
TensorFlow 常用优化器:GradientDescent、Momentum、Adam
TensorFlow 常用优化器:GradientDescent、Momentum、Adam
TensorFlow 常用优化器:GradientDescent、Momentum、Adam
|
新零售 人工智能 分布式计算
亿滋中国X阿里云,释放新零售的数字化力量
亿滋中国基于阿里云DataWorks与MaxCompute搭建新零售数据中台系统,通过强大的技术平台和数据分析能力,亿滋中国可以提早预知市场动向,制定市场,销售和供应链战略, 更高效地触及消费者锁定消费人群,优化成本模型提升投资回报率,提高销售预测的准确性,实现供应链的柔性生产。
3018 1
亿滋中国X阿里云,释放新零售的数字化力量
|
网络协议 关系型数据库 MySQL
Centos7安装docker仓库Harbor
Centos7安装docker仓库Harbor
298 0
|
Android开发 编解码 UED
当手机淘宝遇见折叠屏,让购物更随心
伴随手淘技术团队对华为折叠屏适配工作的展开。半年前还只是概念方案的分屏设计方案已正式实现。华为折叠屏上的淘宝已全面支持分屏多任务,以后商品比价、边逛边聊更加轻松便捷,为大家带来不一样的购物体验。
2735 0
当手机淘宝遇见折叠屏,让购物更随心
|
API 开发工具 Python
OAS的使用——Python SDK
当需要向OAS备份归档的文件量非常大的时候,通过web控制台和命令行工具来完成是不可能的,这时候需要使用OAS提供的SDK编写操作代码来实现
4464 0