Heim > Web-Frontend > HTML-Tutorial > 处理同一页面中借助form+input[type="file"]上传图片出现的input无法清空问题_html/css_WEB-ITnose

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

WBOY
Freigeben: 2016-06-24 11:46:20
Original
1435 Leute haben es durchsucht



       今天下午帮同事改了这样一个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:90%"><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>';
Nach dem Login kopieren


           在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);                           //}         }
Nach dem Login kopieren



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



              

function clearImages(selector) {            var fi;            var sourceParent;            if (selector) {                fi = $(selector);                sourceParent = fi.parent();            }            else {                return;            }            $("
Nach dem Login kopieren
").appendTo(document.body); var tempForm = $("#tempForm"); tempForm.append(fi); tempForm.get(0).reset(); sourceParent.append(fi); tempForm.remove(); }

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









Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage