2016-06-19 18 views
2

Ich Eingabedatei verwenden, so dass, wenn ich ein Bild hochladen und entfernen Sie sie dann, ich kann nicht das gleiche Bild laden wieder, nur wieder eine neuejQuery - Reset Änderungsereignis

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]); 
    } 
}); 

entfernen:

$(".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'); 
}); 

Also gehe ich davon aus Es hat etwas mit dem Änderungsereignis sein

Antwort

2

Leeren Sie die Eingabedatei, nachdem Sie ein Bild entfernt haben.

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

hast du diesen Fall versuchen ?:

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

wenn das funktioniert gut, Sie haben in Ihrem entfernen Event hinzufügen:

$(obj2).val(""); 

Die Ursache ist, dass Sie nicht ändern tun Daten zum Vergleich mit vorherigen die gleichen Daten ... Brunnen Ereignis ist nicht gefeuert. Lösung: Nach dem Löschen - Daten auf leer setzen und alles sollte gut funktionieren. In Ihrem change Ereignis können Sie eine zusätzliche Bedingung für "" val hinzufügen.

Verwandte Themen