IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Utiliser une variable au lieu de perdre du temp?


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Utiliser une variable au lieu de perdre du temp?
    Bonjour, je cherche une alternative à une perte de temp considérable...
    Est t'il possible d'utiliser une variable pour remplacer "document.a.b1.value"?

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <HTML><HEAD><TITLE> New Document </TITLE>
    <script language="JavaScript">
     
    function calculer() {
     
    var a1 = document.a.a1.value;
    var b1 = document.a.b1.value;
    if(a1=10){document.a.b1.value=5;}
    if(a1<10){document.a.b1.value=6;}
    if(a1>10){document.a.b1.value=7;}
     
    }
     
    </script></HEAD><BODY>
    <form name=a>
    <INPUT TYPE="text" NAME="a1" SIZE=1 value="">
    <INPUT TYPE="text" NAME="b1" SIZE=1 value="">
    <INPUT TYPE="button" VALUE="Trouver la solution" OnClick="calculer();" >
    </form></BODY></HTML>
    donc dans ce style si (mais il ne fonctione pas ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <HTML><HEAD><TITLE> New Document </TITLE>
    <script language="JavaScript">
     
    function calculer() {
     
    var a1 = document.a.a1.value;
    var b1 = document.a.b1.value;
    if(a1=10){b1=5;}
    if(a1<10){b1=6;}
    if(a1>10){b1=7;}
    }
     
    </script></HEAD><BODY>
    <form name=a>
    <INPUT TYPE="text" NAME="a1" SIZE=1 value="">
    <INPUT TYPE="text" NAME="b1" SIZE=1 value="">
    <INPUT TYPE="button" VALUE="Trouver la solution" OnClick="calculer();" >
    </form></BODY></HTML>
    J'ai fait différent test mais pas moyen de trouver je suis vraiment perdu...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 235
    Points : 314
    Points
    314
    Par défaut
    pour rester simple ... sache que les primitives sont passées par valeur et les objets par référence... (ce n'est pas 100% exacte mais en gros c'est +- cela...)
    document.a.a1.value -> value est un resultat 'final' une valeur concrete (une chaine, un numeric, ...)
    document.a.a1 -> ce n'est pas une valeur concret, c'est un objet qui contient des propriétées comme par exemple value.


    quand à ton problème voici une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <HTML><HEAD><TITLE> New Document </TITLE>
    <script language="JavaScript">
     
    function calculer() {
     
    var A = document.a.a1;
    var B = document.a.b1;
    if(A.value=10){B.value=5;}
    if(A.value<10){B.value=6;}
    if(A.value>10){B.value=7;}
    }
     
    </script></HEAD><BODY>
    <form name=a>
    <INPUT TYPE="text" NAME="a1" SIZE=1 value="">
    <INPUT TYPE="text" NAME="b1" SIZE=1 value="">
    <INPUT TYPE="button" VALUE="Trouver la solution" OnClick="calculer();" >
    </form></BODY></HTML>
    bon voila ce n'est pas racourci à 100% mais c'est déjà moins long...

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    et tu peux remplacer les name par les id car :
    1-c'est une recommandation du W3C
    2-cela évite les écritures à rallonge du genre objet1.objet2.objet3.etc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
     
    function calculer() {
     
    var A = document.getElementById("a1");
    var B = document.getElementById("b1");
    if(A.value=10){B.value=5;}
    if(A.value<10){B.value=6;}
    if(A.value>10){B.value=7;}
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
     
    <form id="a">
    <input type="text" id="a1" size="1" value="">
    <input type="text" id="b1" size="1" value="">
    <input type="button" value="Trouver la solution" onclick="calculer();" >
    </form>
     
    </body>
     
    </html>
    par ailleurs, préviligie les minuscules dans les balises HTML.

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    tout a fait d'accord
    j'aout qu'utiliser un nom la valuer d'un id comme variable globale pose des pb et qui et fortement déconseillé de le faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function test() {
      alert(field1.value);
    }
     
    <input id="field1" .../>
    on trouve souvent ce genre de chose sur certains navigateur field1 est bien définit dans la fonction test et dans d'autre non

    mais pire on trouve parfois des affactation à des variables globales qui pourte le nom de champs et là tous les navigateurs n'ont pas un comportement tres homogènes ceux qui ne définissement pas de variable global associé au champs n'ont pas de difficullté ce sont des objet différents
    mais pour ceux qui le font soit on a une erreur car on ne peut pas affecter de valeur à l'objet soit la variable change de type et ne référence plus l'objet.

    donc prudence.
    et tout état de cause toujours utiliser getElementById
    a+jyt

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    exemple en page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <script type="text/javascript">
     
    function calculer(f){
     
    	somme=parseInt(f[0].value)-10;
     
    	switch(somme<0){
    		case true : f[1].value=6;break;
    		default : f[1].value= !somme ? 5 : 7;
    	}
     
     
    }
     
    </script>
     
    </head>
     
    <body>
     
     
    <form id="f">
    	<p>
    		<input type="text" size="1" id="n" />
    		<input type="text" readonly="readonly" size="1" id="r" />
    	</p>
    	<p>
    		<input type="button" value="calcul" onclick="calculer(this.form.elements)" />
    	</p>
    </form>

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/05/2006, 15h08
  2. [PHP-JS] utiliser une variable php dans du javascript
    Par kcizth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/02/2006, 11h53
  3. [FLASH MX2004] Utiliser une variable dans le code
    Par arnolem dans le forum Flash
    Réponses: 25
    Dernier message: 02/12/2005, 16h37
  4. [curseurs] utiliser une variable comme nom de champ
    Par Christian31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2005, 14h12
  5. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo