2014-07-10 45 views
0

我想在我的輸入中選擇pdf並在選擇pdf後我想顯示文本輸入。我有更多的文本輸入文本應該是

例如:如果我選擇2個pdf上傳我想顯示2個文本輸入,因爲我想更改每個pdf的標題。

如果我一次選擇所有我想要的pdf,它工作正常。

但是,如果我一次選擇一個pdf文件,我總會得到更多的文本輸入,即我選擇的pdf數量。

例如,如果我要選擇2個pdf,但我選擇第一個,我忘了我的第二個,如果這種情況發生,我選擇我的第一個後,我會選擇我的第二個被遺忘的pdf,但在這種情況下,這第二個pdf的兩個文本輸入。我只有兩個pdf文件共有3個文本輸入。 (所以,我有一個文本輸入更多)

你明白爲什麼會發生這種情況嗎?

你可以在這裏看到我的問題演示:http://jsfiddle.net/j5yeq/4/

這是jQuery腳本進出口使用:

$('.j_gsendp').click(function(){ 
$('.j_galleryp').click().change(function() { 
    var allFiles = this.files; 
    var numFiles = this.files.length; 
    alert(numFiles); 
    $('.j_gfalsep').animate({ 
     width: '400' 
    }, 500, function() { 
     $(this).html('You select <strong>' + numFiles + '</strong>files.'); 
     for (var i = 0; i < numFiles; i++) { 
      var file = allFiles[i], 
       name = file.name; 
      $('#test').append('<span class="field">Title of pdf ' + name + ':</span><input type="text" name="title[]" value="' + name + '"/><br><br>'); 
     } 
    }); 
}); 
}); 

回答

1
<script> 
$('.j_gsendp').click(function(){ 
$('.j_galleryp').click().change(function() { 
    var allFiles = this.files; 
    var numFiles = this.files.length; 
    alert(numFiles); 
    $('.j_gfalsep').animate({ 
     width: '400' 
    }, 500, function() { 
     $(this).html('You select <strong>' + numFiles + '</strong>files.'); 
     for (var i = 0; i < numFiles; i++) { 
      var file = allFiles[i], 
       name = file.name; 
      $('#test').append('<span class="field">Title of pdf ' + name + ':</span><input type="text" name="title[]" value="' + name + '"/><br><br>'); 
     } 


    }); 
    this.val(''); 
}); 
}); 

</script> 

我添加了一個this.val( '');這會在顯示當前計數後清除輸入中的文件數量。

+0

感謝您的回答SiDix。但用你的解決方案如果我想選擇兩個pdf文件,並且我首先選擇一個,然後選擇我的第二個文件替換我的第一個文件... – OzzC

+1

你確定嗎?一旦我選擇另一個文件,它只是追加它...這是jSFiddle http://jsfiddle.net/j5yeq/7/ – Username

+0

沒問題,隨時! – Username

相關問題