Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

code qui marche avec IE mais pas Firefox

5 réponses
Avatar
Serge Nazarian
Bonjour,
J'ai la fonction suivante :

function Change(nb)
{
form1.semainef.options.length=0;
document.getElementById('semaine_fin').style.visibility='visible'
document.getElementById('submit').style.visibility='visible'
for (i=nb; i<=30; i++)
{
var o=new Option(i,i);
form1.semainef.options[form1.semainef.options.length]=o;
}
}

qui fonctionne avec Internet Explorer mais pas avec Mozilla Firefox.

Voici les messages de la console :

Avertissement : Élément référencé par son ID/NAME dans le contexte global.
Utilisez la propriété standard du W3C document.getElementById() à la place.
Fichier source :
http://81.80.143.4/~nazarias/resultats/affiche_notes_profs.php
Ligne : 35

Erreur : document.getElementById("submit") has no properties
Fichier source :
http://81.80.143.4/~nazarias/resultats/affiche_notes_profs.php
Ligne : 37

La ligne 35 est :
form1.semainef.options.length=0;
et la ligne 37 :
document.getElementById('submit').style.visibility='visible'

Que faire pour supprimer l'erreur de la ligne 37 et peut-être aussi
l'avertissement de la ligne 35 ?
Merci pour toute aide.
Cordialement,
--
Serge Nazarian

Cliquez ci dessous pour une réponse personnelle :
http://cerbermail.com/?CBBJUUv0pN

5 réponses

Avatar
Serge Nazarian
Bonjour,

J'ai résolu le problème de l'erreur.
Il me reste l'avertissement dans les lignes suivantes :

form1.semainef.options.length=0;
et
form1.semainef.options[form1.semainef.options.length]=o;


Comment corriger pour éviter l'avertissement :
Avertissement : Élément référencé par son ID/NAME dans le contexte global.
Utilisez la propriété standard du W3C document.getElementById() à la place.

Dernière question : pourquoi le code erroné fonctionne-t-il avec Internet
Explorer ?

Cordialement,
--
Serge Nazarian

Cliquez ci dessous pour une réponse personnelle :
http://cerbermail.com/?CBBJUUv0pN
Avatar
CrazyCat
Serge Nazarian wrote:
form1.semainef.options.length=0;
et
form1.semainef.options[form1.semainef.options.length]=o;
Comment corriger pour éviter l'avertissement :


je présume que le select "semainef" est déclaré avec un id, il faut donc
utiliser son id, donc faire:
mysel = document.getElementById("semainef");
mysel.options[mysel.options.length]=o;

Dernière question : pourquoi le code erroné fonctionne-t-il avec Internet
Explorer ?


Le code n'est pas à proprement parlé erroné car ce n'est qu'un
avertissement.
IE et FF ne gèrent pas de la même manière les avertissements, ni les
accès aux objets.
Sous IE, form1.semainef est accessible, sous FF il y a plus de chances
que tu doives passer par document.form1.semainef

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net

Avatar
Serge Nazarian
CrazyCat wrote:
je présume que le select "semainef" est déclaré avec un id, il faut
donc utiliser son id, donc faire:
mysel = document.getElementById("semainef");
mysel.options[mysel.options.length]=o;

Merci



Dernière question : pourquoi le code erroné fonctionne-t-il avec
Internet Explorer ?


Le code n'est pas à proprement parlé erroné car ce n'est qu'un
avertissement.
IE et FF ne gèrent pas de la même manière les avertissements, ni les
accès aux objets.
Sous IE, form1.semainef est accessible, sous FF il y a plus de chances
que tu doives passer par document.form1.semainef



Mais mon premier codage (celui du message initial) avait une erreur que je
n'ai détectée que lorsque j'ai visualisé avec FF (ça ne marchait pas) alors
que tout allait "bien" avec IE !

Cordialement,
--
Serge Nazarian

Cliquez ci dessous pour une réponse personnelle :
http://cerbermail.com/?CBBJUUv0pN


Avatar
CrazyCat
Serge Nazarian wrote:
Dernière question : pourquoi le code erroné fonctionne-t-il avec
Internet Explorer ?
Le code n'est pas à proprement parlé erroné car ce n'est qu'un

avertissement.
IE et FF ne gèrent pas de la même manière les avertissements, ni les
accès aux objets.
Sous IE, form1.semainef est accessible, sous FF il y a plus de chances
que tu doives passer par document.form1.semainef
Mais mon premier codage (celui du message initial) avait une erreur que je

n'ai détectée que lorsque j'ai visualisé avec FF (ça ne marchait pas) alors
que tout allait "bien" avec IE !


Peut-être IE est-il plus permissif que FF là dessus: le submit
n'existant pas, il ne change pas son style et c'est tout.
Je me demande d'ailleurs s'il n'y a pas une option sur IE pour
outrepasser les erreurs JS.

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net



Avatar
ASM
Bonjour,

J'ai résolu le problème de l'erreur.
Il me reste l'avertissement dans les lignes suivantes :

form1.semainef.options.length=0;
et
form1.semainef.options[form1.semainef.options.length]=o;

Comment corriger pour éviter l'avertissement :


C'est un avertissement : on n'en a rien à faire !

Faudrait tt de mêm que le W3C et/ou ceusses qui xullent nos FireFox
soient cohérents avec eux-mêmes :
- L'utilisation de noms dans les forms est W3C politiquement correct
- Le js vers DOM n'est qu'une sur-couche aux js plus anciens et toujours
d'active

Qu'ils cessent de nos avertir quand on utilise l'arbre (collection) des
forms et utilisation des noms de leurs éléments !


Avertissement : Élément référencé par son ID/NAME dans le contexte global.
Utilisez la propriété standard du W3C document.getElementById() à la place.

Dernière question : pourquoi le code erroné fonctionne-t-il avec
Internet Explorer ?


le code erronné fonctionne aussi avec FF car il n'est pas erronné si
tu écris :
document.form1.semainef.options.length=0.
(ne pas oublier document.)

document.forms['form1'].elements['semainef'].options.length=0
serait plus exact

--
Stephane Moriaux et son [moins] vieux Mac