ugrás a tartalomhoz

DOM-ra épülő for ciklus a fájl inputok listázására

Anonymous · 2006. Szep. 28. (Cs), 08.19
Adott a kovetkezo for cicklus:
var i;
for (i=0; i<10; i++)
{
  document.write(document.filesform.userFile[i].value);
}
Szeretnem a kovetkezot kilistazni:
document.filesform.userFile1.value
document.filesform.userFile2.value
stb..
Sajnos az en peldam nem mukodik, nem ertek sokat JavaScripthez ezert a ti segitsegetekre lenne szukseg.

Kosz!
 
1

id-k használata...

TeeCee · 2006. Szep. 28. (Cs), 08.44
az inputnak megadsz id-t <input id="userFile1" ... >
A for cikluson belül meg a document.getElementById("userFile"+i).value-t használod.
A fájlok feltöltésére szolgáló input speciális, nem vagyok benne biztos, hogy minden böngésző megmondja, hogy milyen fájlt választottak ki, persze könnyen lehet, hogy tévedek. (Egyik böngésző alatt sem írható az értéke, ez viszont biztos!)
2

koszonom

Anonymous · 2006. Szep. 28. (Cs), 09.01
Koszonom, mukodik de van azert egy kis gond:
for (i=1; i<=10; i++)
{
   document.write(document.getElementById("userFile"+i).value);
}
Igy neznek ki a file mezok:
<input type="file" id="userFile1" name="userFile1" size="20" onkeypress="KeyPress()"  >
<input type="file" id="userFile2" name="userFile2" size=20 onkeypress="KeyPress()"  >
Megis csak az elso mezobol listaza ki a fajl nevet. A tobbibol nem, van valami otleted?
3

DOM és document.write nem szeretik egymást

zsepi · 2006. Szep. 28. (Cs), 09.26
Nem tudom, hogy még most is aktuális-e, de anno volt olyan problémám, hogy FF valahányas verziója után dom-ból akartam kiszeddni infókat, s kiiratni document.write-al, s olyan érzésem volt, hogy az első document.write után "eltűnik" a dom. Tesztelésnek próbáld ki a ciklust window.alert-el, hogy biztos nem a logikában van a hiba, s ha megy, akkor ne document.write-ot használj, hanem dom fv-ekkel illeszd be az oldaladba az új tartalmat
4

Kosznom

Anonymous · 2006. Szep. 28. (Cs), 10.07
Zsepi koszonom, igazad van. Alert-al mukodik.
Megis beleutkoztem egy furcsa problemaba amelyre nem talalok megoldast.

Itt van a JavaScript fuggvenyem:
function BeginAttach()
{  	 	
  attach = new Array();
  attach[1] = "self.opener.document.foo.attach1.value";
  attach[2] = "self.opener.document.foo.attach2.value";
  attach[3] = "self.opener.document.foo.attach3.value";
	
for (i=1; i<=10; i++)
{
		
    attach[i] = 'test'
    self.opener.document.foo.submit();
}
A "test" nevu stringet szeretnem beszurni a parent ablakba.
Ha kovetkezo keppen irom mukodik :
self.opener.document.foo.attach1.value = 'test';
self.opener.document.foo.attach2.value = 'test';
Meg tudna valaki mondani, miert nem mukodik a fenti peldaval ?
Most mar nagyon idegesit, tegnap ota ezel a szkriptel kinlodok es nem talalok semmi megoldast.

Elore is megkoszonom !
5

az attach változó az egy lokális tömb

zsepi · 2006. Szep. 28. (Cs), 10.29
ezért tökéletesen működik a kódod, csak nem azt csinálja, amit szeretnél :)
érdemes lenne feltölteni úgy, hogy
for(i = 0; i < 10; i++) {
 self.opener.document.getElementById('attach' + i).value = 'test';
}
self.opener.document.foo.submit();