document.getElementById has no properties

VaN
Mammouth du PHP | 1107 Messages

12 mars 2007, 14:30

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 mars 2007, 15:29

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)) {
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

VaN
Mammouth du PHP | 1107 Messages

12 mars 2007, 16:21

Effectivement, erreur disparue, en corrigeant la petite coquille de ton code (remplacer +1 par +i).

Merci.