处理同一页面中借助form+input[type="file"]上传图片出现的input无法清空问题
2015-04-13 20:39
796 查看
今天下午帮同事改了这样一个bug:
在一个页面中对多张图进行上传时,由于input的value无法情况的问题,导致每次选完图片后,都跟第一张图片一样,无法出现如下效果:
百度了下思路:先将input取到,然后放到一个临时form里面清空,最后删掉form.
代码如下:
首先是生成图片选择和显示部分的绑定代码:
在onchange="UploadImages(this)" 这里的方法中,我们传入本次点击的input,进行提交:
当时因为忽略了对input的清理,才导致了那个问题,为此,加入clearImages函数:
这样,就利用临时form清空了input.
在一个页面中对多张图进行上传时,由于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.
相关文章推荐
- 处理同一页面中借助form+input[type="file"]上传图片出现的input无法清空问题
- Android学习之实现WebView中input="file"选择文件,处理选择图片无法返回类型问题
- WebView 加载H5 <Input type="file"/>标签上传图片问题
- An invalid form control with name='file[]' is not focusable.间接点击form表单的<input type="file">出现的问题
- 最近使用ajaxFileUpload和Jcrop来实现图片上传和截图,出现一个图片无法更换的问题
- 关于input type="file" 上传图片,如何限制上传图片的分辨率
- input标签 type='file' 上传图片问题
- input(type="file")+Handler(一般处理程序)上传文件简单Demo
- input(type="file")+Handler(一般处理程序)上传文件简单Demo
- input type="file" 选取文件路径时出现fakepath问题IE浏览器解决办法
- [置顶]关于使用input type=file 标签上传文件的注意细节(上传文件 无法获取文件 问题)
- 关于WIN10 input type="file"无法触发change问题
- 最近项目上传图片遇到input="file" 不能清空在ie10及以下
- 微信端input type=file 无法上传图片
- 解决JS(Vue)input[type='file'] change事件无法上传相同文件的问题
- 用<input type="file" accept="image/*" capture="camera">之后,把图片放到页面上
- 关于使用input type=file 标签上传文件的注意细节(上传文件 无法获取文件 问题)
- 关于ajax 上传图片 enctype="multipart/form-data"的问题
- 关于PHP HTML <input type="file" name="img"/>上传图片,图片大小,宽高,后缀名。
- 处理各大浏览器的<input type="file">显示风格迥异的问题