javascript variable - Programmation
Marsh Posté le 11-04-2001 à 10:43:30
normalement cela devrait marcher mais le probleme est que tu n'initialise pas ta variable donc pour l'instant je crois que son type est undefined que tu peux tester par la methode typeof
Marsh Posté le 11-04-2001 à 10:58:20
merci pour ton aide, mais je comprends pas ta réponse !
tu veux pas être plus claire dans ce que je dois faire pour que ma variable i soit accessible dans chaque fonction.
Marsh Posté le 11-04-2001 à 11:00:30
mets var i = "";
Marsh Posté le 11-04-2001 à 11:06:11
ça change rien, p't être que je con ! voila un exemple de code (qui test la longueur d'une adresse mail)
var mailchain,maillong;
mailchain=document.formu.mail.value ;
maillong=mailchain.length ;
function testmail() {
alert("votre mail fait " +maillong+ " caractères" );
}
Marsh Posté le 11-04-2001 à 11:08:49
Bin je connais rien en javascript, mais peut etre faut il que tu declare tes variables en globales.... enfin dans bcp de langage c comme ça alors regarde voir si ya pas un truc du genre
Marsh Posté le 11-04-2001 à 11:09:49
ben la tu vois si ton javascript ne marche pas c'est pas normal. (c'est quoi le naviguateur) ?
Marsh Posté le 11-04-2001 à 11:12:04
oui car les variables globales c ce que tu fais, il suffit de les declarer en dehors des fonctions ... c assez aisé ..
Marsh Posté le 11-04-2001 à 11:19:59
j'ai IE5
et quand je la met dans la fonction ça marche ? c'est spéc hein!
Marsh Posté le 11-04-2001 à 11:29:05
c ptet paske ton script tu le fais au debut...
et donc document.blabla ... bah i connait pas encore.. enfin, jsuis pas sur mais regarde de ce cote la...
Met des valeur fixe pour tester... du genre variable="toto" et appelle ta fonction.
Marsh Posté le 11-04-2001 à 11:30:24
Ben wouatouwouatou je lui ai proposé et il dit que cela ne change rien.
Marsh Posté le 11-04-2001 à 11:35:51
lamatrice a écrit a écrit : dans une fonction, si j'utilise une variable qui a été défini en dehors de la fonction, ça marche plus, var i; function toc() { if (i=="5" ) { machin bidule } dans mon exemple la variable i est à l'exterieur de la fonction. quant j'appel toc() il ne connait pas i y a t'il un moyen de definir la variable pour quelle puisse tourner sur toute les futur fuctions |
Hi,
Il faut que tu enleves le "var" devant "i", si tu veux que ta variable soit global.
@+
Bonne suite
Marsh Posté le 11-04-2001 à 11:38:47
bon alors précisons
je reprends mon bout de code pour être claire
var mailchain,maillong,test;
mailchain=document.formu.mail.value ;
maillong=mailchain.length ;
test="toto"
function testmail() {
alert("votre mail fait " +test+ " caractères" );
}
ce code fonctionne avec la variable test
mais si dans mon alert je remplace test par maillong, il me dis "indéfini" ?
par contre si je met l'affectation de mailong et de mailchain dans la funcion là il prend le fils de p....
bon voilà je suis content de ne pas être un imbécile .
Marsh Posté le 11-04-2001 à 12:01:30
lamatrice a écrit a écrit : bon alors précisons je reprends mon bout de code pour être claire var mailchain,maillong,test; mailchain=document.formu.mail.value ; maillong=mailchain.length ; test="toto" function testmail() { alert("votre mail fait " +test+ " caractères" ); } ce code fonctionne avec la variable test mais si dans mon alert je remplace test par maillong, il me dis "indéfini" ? par contre si je met l'affectation de mailong et de mailchain dans la funcion là il prend le fils de p.... bon voilà je suis content de ne pas être un imbécile . |
Dans ce cas c est tout a fait normal.
Le fonctionnement est le suivant :
La page HTML est interprete pas le navigateur.
Donc ds le tag JAVACSRIPT, tout ce qui n est pas fonction javascript est execute.
Donc :
mailchain=document.formu.mail.value ;
maillong=mailchain.length ;
est execute. Mais bien sur au debut, ta variable mail est pas definie, puisque ton tag input est definie apres.
Si tu veux pas l affichage "undefined" il faut que tu mettes ton tag JAVASCRIPT apres le tag INPUT.
Mais ca ne marchera toujours pas puisque, a chaque fois, qui tu vas executer ta fonction, la chaine maillong aura la valeur, a l interpretation de la page (cad vide);
Donc tu es oblige de la mettre ds ta fonction :
mailchain=document.formu.mail.value ;
maillong=mailchain.length ;
et ca marche
@+
Bonne suite
Marsh Posté le 11-04-2001 à 12:04:18
speeder06> Mets d'ou tiens tu cette information, le mot var n'est qu'une methode de declaration, methode propore à chaque langage, cela n'a jamais eu un qq conque rapport avec la definition de varaibles globales. simplement il est certain qu'il ne faut l'utiliser qu'une seule fois pour une variable car sinon cela revient est de la double declaration. C tres simple comme te l'a dit precedemment wouatouwouatou tu l'initialise avec une valuer qui n'existe pas encore lors de la lecture de page par le navigateur
Marsh Posté le 11-04-2001 à 12:08:00
Excuse pour cette info, non correcte.
J ai confondu avec autre chose
Desolee
Marsh Posté le 11-04-2001 à 12:45:31
nabab, ce que voulait dire speeder06, c'est que
Dans une fonction, si tu défini un variable sans utiliser le mot var, elle est automatiquement variable globale, ce qui revient au même que de l'avoir définit en dehors de cette fonction.
si je me trompe ?
Marsh Posté le 11-04-2001 à 13:06:49
ReplyMarsh Posté le 11-04-2001 à 13:15:35
nabab a écrit a écrit : Ben wouatouwouatou je lui ai proposé et il dit que cela ne change rien. |
mais son initialisation comme jai dit est pas bon...
il a surement initialisé avec document.blabla...
Marsh Posté le 11-04-2001 à 13:54:39
lamatrice> oui mais c un comportement par defaut de l'intrepreteur javascript.
Pour moi speeder06, disait d'enlever le "var" devant le var i qui etait ecrit en dehors d'un code de fontion.
Mais y a pas de mal, je voulais d'ailleurs savoir ou cela pouvait etre ecrit afin de regarder excatement ce qu'il voulait dire ...
wouatouwouatou> ca y est speeder06 a pondu une solution assez nickel
Marsh Posté le 11-04-2001 à 14:02:05
oups.. désolé, javai pas vu
Marsh Posté le 11-04-2001 à 10:32:43
dans une fonction, si j'utilise une variable qui a été défini en dehors de la fonction, ça marche plus,
var i;
function toc() {
if (i=="5" ) {
machin bidule }
dans mon exemple la variable i est à l'exterieur de la fonction. quant j'appel toc() il ne connait pas i
y a t'il un moyen de definir la variable pour quelle puisse tourner sur toute les futur fuctions