I eine Eingabe von Typ-Datei und eine versteckte Form darunter definiert haben,append() in jquery Does'nt append zweiten Zeitdatei
<input type="file" name="attachment0" id="attachment0" custom-on-change="uploadfile" ng-show="attachFile" multiple/>
<form class="hidden" id="myForm" method="post" enctype="multipart/form-data" action="SupportRequest">
</form>
"custom-on-change" eine Winkel Richtlinie, die Anrufe die Funktion uploadfile() nach dem Auswählen von Dateien. Mein Javascript sieht wie folgt aus:
var form = $('#myForm');
var n=0;
$scope.attachFile = true;
$scope.uploadfile = function() {
if(n == 0){
var filein = $('#attachment0');
form.append(filein);
$('#attachment0').test();
}
else
{
if(n==1){
var temp = "attachment0" + '_' + n;
var file_in = $('#'+temp);
form.append(file_in);
$('#'+temp).test();}
}
};
$.fn.test = function() {
return this.each(function(){
n++;
$(this).attr('id', this.id + '_' + n);
$(this).attr('name', this.name + '_' + n);
});
};
Ich versuche, Dateien zweimal an das Formular myForm anzufügen. Wenn ich Dateien zum zweiten Mal wähle, auch nach dem Anhängen, sehe ich, dass die zuvor angehängte Eingabe mit id = "attachment0" in myForm nicht vorhanden ist und die Eingabe von id = "attachment0_1" im Formular vorhanden ist. Hier versuche ich, mehrere Dateien mehrmals hochzuladen, deshalb ändere ich dynamisch die ID der Eingabe in test(). Ich möchte beide Eingabe mit ID attachment0 und attachment0_1 in myForm. Weiß jemand, wie das behoben werden kann? Und erkläre dieses Verhalten auch.
Gibt es einen Fehler in Browser-Konsole für das Kopieren? – Luke
Kann ich fragen, warum Sie jQuery verwenden, um die Benutzeroberfläche zu aktualisieren, wenn Sie AngularJS ebenfalls verwenden? –
Hallo alle, ich habe die Beschreibung aktualisiert. Ich habe im Grunde versucht, mehrere Dateien mehrmals hochzuladen, deshalb ändere ich dynamisch die ID meiner Eingabe. –