kostenloser Webspace werbefrei: lima-city


JavaScript um auszuwählen, wieviele Datein upgeloaded werden können

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    m*4

    Hallo Leute,

    ich habe ein Script geschrieben, mit dem man die Anzahl der Dateien, die man uploaden will bestimmen kann. Aber leider funktioniert es nicht so, wie ich es mir erhofft hatte. Das hinzufügen von Inputs geht problemlos, aber das entfernen klappt leider nicht richtig. Irgendwie wird die falsche Anzahl von Inputs entfernt.

    Kann mir jemand sagen, woran das liegt?

    <script tpye="text/javascript">
    <!--
    	function showFileUploads() {
    		var filename = 'uploadFile';
    		var nInputs = document.getElementById('nPic').value;
    		
    		var nFileUploads = document.getElementById('fInputs').getElementsByTagName('input');
    		
    		if (nFileUploads.length > 0) {
    			for (var i = 0; i < nFileUploads.length; i++) {
    				document.getElementById('fInputs').removeChild(nFileUploads[i]);
    			}
    		}
    		
    		for (var i = 1;	i <= nInputs; i++) {
    			var newInputBox = document.createElement('input');
    			newInputBox.name = filename+i;
    			newInputBox.id = newInputBox.name;
    			newInputBox.type = 'file';
    			document.getElementById('fInputs').appendChild(newInputBox);
    		}
    	}
    -->
    </script>


    Das Script wird immer aufgerufen, wenn sich der Wert einer SelectListe ändert.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. ho ;)

    Ich bin mir nicht sicher, weil JS nur bedingt zu meinen Spezialitäten gehört :P

    Meiner bescheidenen Meinung nach liegt es aber an folgender Zeile:
    document.getElementById('fInputs').removeChild(nFileUploads[i]);


    Kann es sein, dass das Script manchmal funktioniert und richtig handelt, und manchmal total daneben haut?
    Also aufs Löschen bezogen...

    Wenn du diese Zeile ausführst, und im Array removeChild(nFileUploads[.i.]) ( i -> Italic ^^ )das i immer um 1 inkrementiert wird, dann löscht du mein ersten mal das erste Element [0], beim zweiten Durchgang (Das vorherige 2. Element ist nun das 1. und das vorherige 3. ist nun das 2., welches durch [1] gelöscht wird, usw...

    Kurz gesagt: Du fängst ab irgend einer Wiederholung an, Elemente zu löschen, die es gar nicht mehr gibt.

    Ich glaube, dass die Lösung so aussehen könnte:

    document.getElementById('fInputs').removeChild(nFileUploads[0]);

    Also einfach statt dem i-Wert immer nur das erste Element entfernen. (Begründung: Jedes mal, wenn ein Element entfernt wurde, ist das nächste Element das Erste.)

    Ich habe es nicht getestet, aber es sollte funktionieren ;)
    *Hoff* ^^

    lg
    Sincer

    Beitrag zuletzt geändert: 24.1.2010 23:31:13 von sincer
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!