2015-02-18 2 views
0

У меня есть способ загрузки файлов. У него есть, удалять, очищать поля. Добавлять и удалять работу отлично. В ясном методе у меня есть два входных значения файла. Когда я нажимаю кнопку «Очистить», оба входных значения очищаются. Я хочу очистить только конкретное значение входного файла.Flie Upload Clearing File input Value Индивидуально

Как решить эту проблему

$('.multi-field-wrapper').each(function() { 
 

 
\t \t \t var $wrapper = $('.multi-fields', this);  
 

 
\t \t \t $(".add-field", $(this)).click(function(e) {  
 
\t \t \t \t $('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus(); 
 
\t \t \t }); 
 

 
\t \t \t $('.multi-field .remove-field', $wrapper).click(function() { 
 
\t \t \t \t if ($('.multi-field', $wrapper).length > 1) 
 
\t \t \t \t \t $(this).parent('.multi-field').remove(); 
 
\t \t \t }); 
 

 
\t \t \t $('.multi-field .clear-field', $wrapper).click(function() { 
 
\t \t \t \t //if ($('.multi-field', $wrapper).length > 1) 
 
\t \t \t \t if(navigator.userAgent.toUpperCase().indexOf('MSIE') >= 0){ 
 
\t \t \t \t \t $("input[type='file']").replaceWith($("input[type='file']").clone(true)); 
 
\t \t \t \t } else { 
 
\t \t \t \t \t $("input[type='file']").val(''); 
 
\t \t \t \t } 
 
\t \t \t }); 
 
});
<div class="multi-field-wrapper"> 
 
    <div class="multi-fields"> 
 
    <div class="multi-field"> 
 
     <input type="file" value="choose files" id="attach" name="attach[]" onchange="check_file_sizes();"/> 
 
     <button type="button" class="remove-field">Remove</button> 
 
     <button type="button" class="clear-field">Clear</button> 
 
     <!--<button type="button" id="clear" >Clear</button> -->        
 
    </div> 
 
    </div> 
 
    <button type="button" class="add-field">Add field</button>       
 
</div>

http://jsfiddle.net/techpalani/987ry6nn/1/

+0

Вы указали неправильную ссылку на JsFiddle. Исправьте это, пожалуйста. – zur4ik

ответ

2

Проблема с вашим селектором. Проверьте это Fiddle. Вы должны изменить свою функцию clear следующим образом:

$('.multi-field .clear-field', $wrapper).click(function() { 
     //if ($('.multi-field', $wrapper).length > 1) 
     if(navigator.userAgent.toUpperCase().indexOf('MSIE') >= 0){ 
      $(this).closest('.multi-field').find("input[type='file']").replaceWith($("input[type='file']").clone(true)); 
     } else { 
      $(this).closest('.multi-field').find("input[type='file']").val(''); 
     } 
});