begin process at 2012 05 30 03:12:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

AU SECOURS !!!

 > 

variable contenant le nom de la methode JAVASCRIPT


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

variable contenant le nom de la methode JAVASCRIPT

mardi 9 mai 2006 à 18:31:17 | variable contenant le nom de la methode JAVASCRIPT

s1pike

Bonjour à tous, j'ai un petit pb à résoudre. J'ai un classe qui se nomme utilisateur et qui contient des methodes getNom(),getPrenom(). Dans un autre fichier j'ai un formulaire 2 imput. Le premier va avoir  comme nom name=nom et le deuxieme name=prenom. Je souhaiterai en fonction du nom du champ input recuperer la methode associer de la classe. Je m'explique, lorsque je tombe sur name=nom, je souhaite recupere le getter associé, c'est à dire getNom(), et recuperer le nom de la classe pour l'affecter a l'element input.

Voici ce que j'ai :
Objet est ma classe qui contient les getter. elt est mon formulaire html
nom_method contient le nom de la methode dont j'ai besoin par exemple getName()
mais quand je fait objet.nom_method (equivaut logiquement a objet.getName()) ca ne marche pas.

function setData(objet){

   for(var i = 0; i < elt.length ; i++) {

   var nom_champ = elt.elements[i].name;

nom_method="get"+majuscule(nom_champ.charAt(0))+nom_champ.substring(1,nom_champ.length)+"()";

var truc=objet.nom_method;

elt.elements[i].value=truc;

}

}



Merci de votre aide....

mardi 9 mai 2006 à 21:13:04 | Re : variable contenant le nom de la methode JAVASCRIPT

Hermios

Il serait peut être intéressant que tu nous donnes ta définition de l'élément "objet", parce que là, j'avous ne pas tout comprendre. Personellement, je n'ai jamais vu appeler une foncion de cette manière, donc je pense que tu ne t'y prends pas bien. Complète en précisant les noms des fichiers, et j'essaierai de t'aider :))))
mardi 9 mai 2006 à 21:24:36 | Re : variable contenant le nom de la methode JAVASCRIPT

s1pike

Objet est ma classe qui contient les getter ex :

function utilisateur(){

var nom;
var prenom;

this.getNom=function getNom(){
   return nom;
}

this.getPrenom=function getPrenom(){
   return prenom;
}
............
}

/----------------------------------------------------------------------------/

la classe qui contient setData(objet) se nomme formfield() et s'instancie de cette maniere :

var uti=new Utilisateur();
uti.setNom("toto");
uti.setPrenom("machin");

ffield=new FormField(unformulaire);
fffield.setData(uti);

Le but du code est de passer une classe qui contient des getter et setter à un objet (formfield) qui parcours tous les input de ce formulaire, recupere le nom, et en fonction du nom des inputs crée une variable nom_method qui serra de la forme get+NomInput ex : getNom() ou getPrenom() afin de recuperer le nom et le prenom de l'objet passe en parametre (ici uti) et afficher les valeurs recuperées dans les input ^^ !!!

Voila j'espere avoir été un peu plus clair, si tu as besoin de plus de detail fait moi signe...
mardi 9 mai 2006 à 21:53:38 | Re : variable contenant le nom de la methode JAVASCRIPT

Hermios

Je note déjà des casses différentes, pour la définition de ta fonction utilisateur(), et son utilisation (var uti=new Utilisateur() )
Ensuite, je pense que tes parenthèses sont en trop dans ta définition de nom_method, puisque tu définis toi même tes fonctions comme this.getNom
(mais là, j'avoue ne pas être sur). Essaie déjà de voir ça, et éventuellement, fais des tests pour savoir où ça plante exactement (personellement, j'use et j'abuse des alerts, puisque javascript lit et exécute le programme dans son sens normal de lecture, tu peux savoir immédiatement à quelle ligne ça bugue)
voilà
@+. moi
mardi 9 mai 2006 à 22:01:22 | Re : variable contenant le nom de la methode JAVASCRIPT

s1pike

ouhais je suis d'accord pour la casse mais j'ai tapé a l'arrache c'est pour ca , mais mon code est correcte. Le bug vient juste du fait que lorsque je veux utiliser ma variable qui contient le nom de ma methode, je ne peux pas faire monObjet.nom_methode

EX :
Logquement je devrais faire uti.getNom();
or ici uti est passé en parametre et le nom de la methode est stocké dans nom_methode

nom_methode="getName()"; // c'est un raccourci de mon code mais le resultat est le meme
objet.nom_methode me retourne undefined
alors que si je fait objet.getName() me retourne le nom de mon objet uti

Le problème vient juste de la car je ne sais pas comment évaluer ma methode pour faire comme si c'etait getName()
J'ai essayé eval() ca ne marche pas, je ne pense peut etre pas a tout donc c'est pour ca que j'en parle sur le forum.

Ou alors si ya une methode d'introspection de ma classe et me retourne une liste avec les méthodes de ma classe javascript (Utilisateur) je suis preneur.

Le but est vraiment de récupérer le résultat de chaque getter ma classe Utilisateur, mais pour ca il faut bien les récupérer.
mardi 9 mai 2006 à 22:53:10 | Re : variable contenant le nom de la methode JAVASCRIPT

Hermios

Essaie de modifier ta définition de var truc comme ici:

var
nom_champ = elt.elements[i].name;

nom_method="get"+majuscule(nom_champ.charAt(0))+nom_champ.substring(1,nom_champ.length)+"()";

var truc = eval(objet+"."+nom_method);
mercredi 10 mai 2006 à 09:40:04 | Re : variable contenant le nom de la methode JAVASCRIPT

s1pike

j'ai essayé cette solution et ca me met une erreur du style => Erreur : ']' attendu
mercredi 10 mai 2006 à 13:35:34 | Re : variable contenant le nom de la methode JAVASCRIPT

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour il faut faire :

nom_method="get"+majuscule(nom_champ.charAt(0))+nom_champ.substring(1,nom_champ.length);

var truc=objet[nom_method]();


// on rajoute la méthode toFirstUpperCase à l'objet String
string.prototype.toFirstUpperCase = function(){
   var s; 
   s += this.charAt(0).toUpperCase(); 
   s += this.substring(1, this.length).toLowerCase();
   return s;
}

tu peux meme faire : var truc = tonObj['get' + nom_champ.toString().toFirstUpperCase()];

regarde ici : http://blogs.developpeur.org/cyril/archive/category/1037.aspx j'ai écrit plusieurs articles sur le sujet ;-)


Cyril - MVS - MCP

mercredi 10 mai 2006 à 13:40:29 | Re : variable contenant le nom de la methode JAVASCRIPT

s1pike

Réponse acceptée !
En fait j'ai reussi avec eval()

il fallait mettre objet en string . Ex:

nom_method="get"+majuscule(nom_champ.charAt(0))+nom_champ.substring(1,nom_champ.length)+"()";

var executionMethode = "objet."+nom_method;
var toto=eval(executionMethode);

Voila et ca marche nickel !!

Merci pour toutes vos réponses !!!

mercredi 10 mai 2006 à 13:46:46 | Re : variable contenant le nom de la methode JAVASCRIPT

jesusonline

Membre Club Administrateur CodeS-SourceS
eval est une méthode ca implique donc qu'il va y avoir du code derriere, la facon que je t'ai montré ne fais pas appel à d'autres méthodes elle sera donc beaucoup plus rapide ...

évite eval sauf quand c'est vraiment nécessaire, ca conduit souvent à des trucs bien compliqués


Cyril - MVS - MCP

1 2

Cette discussion est classée dans : methode, objet, champ, classe, name


Répondre à ce message

Sujets en rapport avec ce message

probleme de classe [ par wonesek ] bonjour j'ai un petit probleme: comment obtenir le nom d'un objet a partir d'une de ses methodes?par exemple: si mon objet s'appel monObj, faire en so Formulaire [ par w_minisplash_w ] Bonjour à tous,J'ai 3 select dont les attributs name sont "azerty[0]['qwerty']", "<font color="#808080" face="Aria "settimeout" dans une classe [ par francois44 ] Bonjour à tous!Je suis actuellement en train de bosser sur une classe d'affichage de NEWS.Je sais qu'il y en a plein dans les sources, mais j'ai rien CRéation d'objet [ par jeanjeandada ] Bonjour,POur créer un objet avec ces propriété il faut créer une classe ??? si oui, comment faites vous pour en créer une . merci<span style="color: Histoire de focus [ par Maroxye ] Bonjour!Je suis assez débutante avec Javascript, voici mon problème(on parle d'un panier d'achat) :J'ai une form principale avec un champ texte qui es Mettre une annime dans <div></div> [ par NargiT ] Voici le problèmeComment je peux mettre une aniamtion *.swf dans un ??Mon but est de faire un boutton, lorsqu'il est survolé au passage de la souris u methode indexOf(objet) sur ie [ par chico748 ] comment gerer la methode indexOf() sur ie.Jai fais mon code qui marche sur firefox mais pas sur ie. SereniXHashMap.prototype.getKeyIndex = function(ke probleme avec wysiwyg multiples [ par doria123 ] Bonjour,J'ai commencé à développer un petit wysiwyg en js sous php, jusque là pas de problème : une fonction pour mettre la iframe en designMode, une Augmenter ou diminuer le chiffre d'un champ texte [ par Tilix ] Salut, J'ai un code javascript, avec une boucle qui repete plusieurs fois les champs form : <font color=" controle champ obligatoire 50 caracteres [ par men75 ] Bonjour, qui pourrait me donner la fonction pour calculer un champ de texte obligatoire de 50 caractéres. de plus, je sais que cela existe mais je ne


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,101 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales