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

Variable Globale, fichier externe, etc ...

1 réponse
Avatar
nicam
Bonjour,

Je butte sur un probl=E8me qui me d=E9passe un petit peu.
J'explique :

Une page HTML execute une fonction javascript stock=E9e dans un fichier
.js externe =E0 l'evenement onload.
Cette fonction cr=E9e une variable globale sous forme de Array().

Dans la meme page HTML, =E0 un evenement donn=E9 (click sur bouton),
j'essaye de lire la variable globale pr=E9c=E9dement cr=E9e (par
l'intermediaire d'une autre fonction dans le meme fichier .js).

La premi=E8re partie se passe sans aucun probleme.
Par contre, =E0 l'evement voulu (ici, le onclick), je rencontre une
erreur. Je pense qu'il ne connais plus la variable.

Pour info, voici ce que j'essaye de faire :
La page HTML contient un formulaire g=E9n=E9r=E9e.
Le but est d'afficher une alerte lors du submit UNIQUEMENT si une
valeur du formulaire =E0 =E9t=E9 modifi=E9.
Aussi, au chargement de la page (onload), je parcours mon formulaire,
et je stock=E9 dans une Array() global , le nom des champs, puis dans un
autre Array() global, les valeurs des champs.

Au moment du click sur le submit je parcours tous mes champs du
formulaires, et je compare les valeurs avec celles que j'ai stock=E9s
dans les variables globales.

Sauf que je ne retrouve pas mes variables globales au moment du test
final ...
Biensure, j'ai pris soins de verifier que le formulaire ne se validait
pas (pas de rechargement de page).

Si quelqu'un avait une petite id=E9e, ca m'arrangerait bien.

Sinon, il y a la solution de creer un deuxieme formulaire dynamiquement
via DOM, donc chaque champs serait un champs cach=E9, contenant les meme
valeurs que le formulaire principale. Mais je prefere eviter ce genre
de bidouille ...

Merci d'avance.ariable

1 réponse

Avatar
Nicam
Bon, ok, j'ai le syndrome du lamer ...
Je viens de me rendre compte que comme bcp de monde, j'utilisais
l'instruction var pour definir une variable globale, dans une fonction.

Grande découverte pour moi : var declare une variable locale !