Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2983 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Optimiser un code JavaScript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Optimiser un code JavaScript

n°1420890
hal777
Posté le 06-08-2006 à 17:00:54  profilanswer
 

Bonjour à tous,
 
je suis débutant dans le Javascript, et je voudrais savoir si je peux alléger le code que j'écrit, car il me semble très long !!!!
 
J'ai une page HTML dans laquelle j'ai trois champ (input text) dont une partie de leur nom est commun (champ1, champ2, champ3).
 
Avec un petit script Javascript je fait du controle dans ces champ (les mêmes controles dans les trois champs).
 
exemple :

Code :
  1. <HTML>
  2. <HEAD> <TITLE>ma page</TITLE>
  3.      <SCRIPT language="Javascript" type="text/javascript">
  4.         function controle(mon_champ)
  5.            {
  6.            If (mon_champ == '1') { if (document.formulaire_1.champ_1 >10) {alert("mauvaise valeur";} }
  7.            If (mon_champ == '2') { if (document.formulaire_1.champ_2 >10) {alert("mauvaise valeur";}}
  8.            If (mon_champ == '3') { if (document.formulaire_1.champ_3 >10) {alert("mauvaise valeur";}}
  9.            }
  10.      </script>
  11. </HEAD
  12. <BODY>
  13. <FORM name="FORMULAIRE_1">
  14.    <INPUT type="TEXT" name="champ_1" onBlur="javascript:controle('1')">
  15.    <INPUT type="TEXT" name="champ_2" onBlur="javascript:controle('2')">
  16.    <INPUT type="TEXT" name="champ_3" onBlur="javascript:controle('3')">
  17.    ......
  18.    .....
  19. </FORM)
  20. </BODY>
  21. </HTML>


 
Voilà, tout ça pour dire que je fait le même controle pour trois champ différent ...
N'est t'il pas possible de réduire la longueur du script js comme ceci :
 

Code :
  1. <SCRIPT language="Javascript" type="text/javascript">
  2.         function controle(mon_champ)
  3.            {
  4.            If (document.formulaire_1.champ_[mon_champ] >10) {alert("mauvaise valeur";} }
  5.            }
  6.      </script>


 
Donc, j'ai bien sur testé cette méthode, mais cela ne parche pas ... la varialbe [mon_champ] n'est pas récupéré et j'obtient donc erreur de ce type :
 'document.Formulaire_1.mon_champ' à la valeur NULL ou n'est pas un objet
 
Voilà je ne sais pas comment faire ...
 
Merci de votre contribution ;)

mood
Publicité
Posté le 06-08-2006 à 17:00:54  profilanswer
 

n°1420894
gatsu35
Blablaté par Harko
Posté le 06-08-2006 à 17:06:55  profilanswer
 

Même si ton html et ton JS sont d'avant guerre je te repond simplement ceci :  

Code :
  1. <INPUT type="TEXT" name="champ_1" onBlur="controle(this)">


et JS :  

Code :
  1. function controle(obj) {
  2. if (obj.value>10) alert("mauvaise valeur" );
  3. }


 
 
     

n°1422082
hal777
Posté le 08-08-2006 à 09:43:55  profilanswer
 

Salut Gatsu35,
 
Désolé de poser une question qui va te paraître idiote ... mais :
     - que signifie THIS ?
Je vois que cela te permets d'écrire cette ligne de contrôle :
     - if (this.value>10) alert("mauvaise valeur" );
mais que vaut this.value ???
Javascript est-il capable de remplacer le 'this' par le nom de l'objet sur lequel j'ai cliqué ?
 
merci de tes lumières ;)
 
HAL

n°1422324
gatsu35
Blablaté par Harko
Posté le 08-08-2006 à 16:32:12  profilanswer
 

tu passes this en parametre de la fonction
dans la fonction je recupere ce this dans la variable obj
 
this correspond à l'input et donc obj correspond à cet input


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Optimiser un code JavaScript

 

Sujets relatifs
Problémes de portée sur un javascript[Javascript] Problème d'espace et <select> [Résolu]
Parser du code!Code non validé par le W3C
Charger une page après execution du javascriptFichier existant javascript
Code sourcePlugin Eclipse generation code (Akrogen)
treegrid en html/javascriptJavascript vers ASP.NET
Plus de sujets relatifs à : Optimiser un code JavaScript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR