2016-06-19 38 views
2

我使用的輸入文件,所以當我上傳的圖片,然後將其刪除,我無法再次上傳相同的圖像,只有另一個不同jQuery的 - 復位更改事件

addimg

obj2.on('change', function(e){ 
    e.stopPropagation(); 
    e.preventDefault(); 
    $(this).css('border',"4px dotted #bdc3c7"); 
    var objid = $(this).parents('.drop').attr("id"); 
    var files = e.target.files; 
    var file = files[0]; 
    if (files && files[0]) { 
     var reader = new FileReader(); 
     reader.onload = function (e) { 
      $("#" + objid).find(".addCont").css('visibility', 'hidden'); 
      $("#" + objid).css('background-image', 'url(' + e.target.result + ')'); 
      $("#" + objid).find('.imgmenucontainer').css('visibility', 'visible'); 
     } 
    reader.readAsDataURL(files[0]); 
    } 
}); 

刪除

$(".custombtnremove").click(function(){ 
    var objid = $(this).parents('.drop').attr('id'); 
    $("#" + objid).css('background-image', ''); 
    $("#" + objid).find('.imgmenucontainer').css('visibility', 'hidden'); 
    $("#" + objid).find(".addCont").css('visibility', 'visible'); 
}); 

所以我認爲它必須是一些與更改事件

回答

2

刪除圖像後清空輸入文件。

$(".custombtnremove").click(function(){ 
    //previous code here 
    //reset input file 
    $(obj2).val(""); //-> or obj2.val(""); if obj2 is already a jquery object. 
}); 
1

你嘗試這種情況?:

1. upload file A 
2. remove file A 
3. upload file B 
4. remove file B 
5. upload file A 

如果工作正常,你必須在你刪除事件中添加:

$(obj2).val(""); 

原因是你不改變數據與以前相同的數據進行比較......以及事件change未被解僱。解決方案:刪除後 - 將數據設置爲空,所有應該工作正常。在您的change事件中,您可以爲"" val添加附加條件。