Page 1 sur 1

document.getElementById has no properties

Posté : 12 mars 2007, 14:30
par VaN
Bonjour tout le monde,

Un script JS me pose problème, il me renvoie l'erreur document.getElementById has no properties, mais pourtant il fonctionne. Mais pour des raisons de conscience professionnelle, j'aimerai faire disparaitre cette erreur.

Le script permet de faire apparaitre un deuxieme input FILE lorsque le premier est rempli :

Code : Tout sélectionner

function show() { for(var i=1; i<10; i++) { if(document.getElementById("photo"+i).value != "") { document.getElementById("photo"+(i+1)).style.display = ""; document.getElementById("info"+i).style.display = ""; var full = document.getElementById("photo"+i).value; var info = full.substring(full.lastIndexOf("\\")); info = info.substring(1, info.length); document.getElementById("info"+i).value = info; } } }
et ce sur quoi cela agit :

Code : Tout sélectionner

<tr> <td><?php echo $lang_photo_file; ?> :</td> <td><input type="file" name="photo1" size="40" id="photo1" onchange="javascript:show();" /> <input type="text" name="info1" id="info1" disabled style="display:none" /></td> </tr> <tr> <td></td> <td><?php echo $lang_multiple; ?></td> </tr> <tr> <td></td> <td><input type="file" name="photo2" style="display:none" size="40" id="photo2" onchange="javascript:show();" /> <input type="text" id="info2" disabled style="display:none" /></td> </tr>
La ligne qui génère l'erreur est
if(document.getElementById("photo"+i).value != "")
Comment puis-je résoudre cette erreur ?

Merci

Posté : 12 mars 2007, 15:29
par zeus
Ton code va tester l'existence de toutes les balises dont l'id est "photo"+i pour i allant de 1 à 10.

Pour 1 et 2, il trouve la balise mais après, il ne trouve plus.

C'est donc à toi de trouver le moyen de tester si la balise existe

Code : Tout sélectionner

//Si cette balise existe if (document.getElementById('photo'+1)) {

Posté : 12 mars 2007, 16:21
par VaN
Effectivement, erreur disparue, en corrigeant la petite coquille de ton code (remplacer +1 par +i).

Merci.