Accueil > Forum > > > > variable contenant le nom de la methode JAVASCRIPT
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
|
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
|
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
|
|
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|