Optimiser un code JavaScript

Optimiser un code JavaScript - HTML/CSS - Programmation

Marsh Posté le 06-08-2006 à 17:00:54    

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 ;)

Reply

Marsh Posté le 06-08-2006 à 17:00:54   

Reply

Marsh Posté le 06-08-2006 à 17:06:55    

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. }


 
 
     

Reply

Marsh Posté le 08-08-2006 à 09:43:55    

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

Reply

Marsh Posté le 08-08-2006 à 16:32:12    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed