2012-03-08 2 views
0

Ниже приведена часть кода jquery, который содержит входной файл и кнопку «Очистить файл».Как очистить отдельные входы файлов?

var $imagefile = $('<input />') 
    .attr({ 
     type: 'file', 
     name: 'imageFile', 
     class: 'imageFile' 
    }); 

$image.append($imagefile); 

var $imageclear = $('<input />') 
    .attr({ 
     type: 'button', 
     name: 'imageClear', 
     class: 'imageClear', 
     value: 'Clear File' 
    }); 

$(".imageClear").click(function(event){ 
    event.preventDefault(); 
    $(".imageFile").replaceWith("<input type='file' class='imageFile' />"); 
}); 

Теперь, если вы посмотрите на нижней части кода JQuery, он показывает функции я использую, где, если пользователь нажимает на кнопку «Clear File», он заменяет входной файл, так что если вы выбрали файл, но затем хотите очистить ввод, затем он делает это, заменив ввод.

Проблема заключается в том, что позволяет сказать, что у меня есть два входа «imageFile» (каждый входной файл содержит свою собственную кнопку «Очистить файл»), и оба они содержат файл, а затем позволяют мне только очистить первый входной файл , когда я нажимаю кнопку «Очистить файл», он очищает оба входа файлов, хотя я только хочу, чтобы он очистил один входной файл. Так как я его кодирую, чтобы каждая кнопка «Очистить файл» удаляла только входной файл принадлежит

+0

возможно дубликат [Как очистить входной файл] (Ht tp: //stackoverflow.com/questions/9617738/how-to-clear-file-input) –

+0

Вы не должны создавать для этого новый вопрос. Уточните оригинал. Вы просите, как найти определенный узел относительно другого узла. Это зависит от фактической структуры вашего DOM. jQuery предоставляет множество методов обхода DOM, вам просто нужно найти правильный. http://api.jquery.com/category/traversing/ –

+0

Вам нужен способ определения правильного ввода с помощью кнопки либо путем перемещения DOM, либо с помощью другого метода (такого как уникальный класс, для хранения идентификатора входа как атрибут 'data- *' кнопки и т. д.). –

ответ

2

Предположив ввода и кнопки находятся внутри одного контейнера (es.div), изменить эту линию:?

$(this).parent().find(".imageFile").replaceWith("<input type='file' class='imageFile' />"); 
+0

Это сработало отлично, спасибо :) – user1181690

Смежные вопросы