Accueil > Forum > > > > Problème de connaissance en javascript
Problème de connaissance en javascript
vendredi 1 mai 2009 à 11:39:38 |
Problème de connaissance en javascript

alexflex25
|
Bonjour à tous. J'ai un petit problème avec une de mes fonctions.
OBJECTIF DE LA FONCTION: Ajouter des valeurs à l'attribut "onclick" des mes balise HTML '<input type="button"/>'
Voici un premier exemple qui fonctionne mais qui est limité
(les lignes à analyser sont en rouge)
function liste_onclick_boutons(){ //Liste des mes boutons <input/> var inputs = $$('input'); //compteur de bouton <input type="button"/> var compteur = 0; //variable ajax0 pour le premier bouton var ajax0 = ''; //variable action0 pour le premier bouton var action0 = ''; //variable ajax1 pour le 2 bouton var ajax1 = ''; //variable action1 pour le 2 bouton var action1 = ''; //Pour chaque <input/> de ma page for(var i=0; i<inputs.length; i++){ //si c'est un bouton <input type="button"/> et qu'il possede des attributs "ajax" et "action" //exemple: <input type="button" name="Valider" value="Valider" ajax="request" action="aff_valider" />' if(inputs[i].type == "button" && $(inputs[i]).getAttribute('ajax') != null && $(inputs[i]).getAttribute('action') != null){ //suivant le numero de mon bouton switch(compteur){ case 0: //j'affecte la variable correpondante a mon bouton ajax0 = $(inputs[i]).getAttribute('ajax'); action0 = $(inputs[i]).getAttribute('action'); //j'ajoute la valeur à la propriete onclick de mon bouton. $(inputs[i]).onclick = function (){eval(gen_onclick(ajax0,action0));} break; case 1: //j'affecte la variable correpondante a mon bouton ajax1 = $(inputs[i]).getAttribute('ajax'); action1 = $(inputs[i]).getAttribute('action'); //j'ajoute la valeur à la propriete onclick de mon bouton. $(inputs[i]).onclick = function (){eval(gen_onclick(ajax1,action1));} break; } //j'incremente la valeur de mon compteur pour le bouton suivant compteur++; } } }
l'idée finale est d'arriver à quelque chose comme ceci:
function liste_onclick_boutons(){ var inputs = $$('input'); var compteur = 0; for(var i=0; i<inputs.length; i++){ if(inputs[i].type == "button" && $(inputs[i]).getAttribute('ajax') != null && $(inputs[i]).getAttribute('action') != null){ eval('ajax' + compteur) = $(inputs[i]).getAttribute('ajax'); eval('action' + compteur) = $(inputs[i]).getAttribute('action'); $(inputs[i]).onclick = function (){eval(gen_onclick(('ajax' + compteur),('action' + compteur)));} compteur++; } } }
POURQUOI FAIRE CECI: Si j'utilise ma fonction de la maniéré suivante tous mes boutons se retrouve avec les mêmes valeurs de "ajax" et "action" que le dernier bouton.
function liste_onclick_boutons(){ var inputs = $$('input'); var compteur = 0; var ajax = ''; var action = ''; for(var i=0; i<inputs.length; i++){ if(inputs[i].type == "button" && $(inputs[i]).getAttribute('ajax') != null && $(inputs[i]).getAttribute('action') != null){ ajax = $(inputs[i]).getAttribute('ajax'); action = $(inputs[i]).getAttribute('action'); $(inputs[i]).onclick = function (){eval(gen_onclick(ajax,action));} compteur++; } } } Merci à tous de votre aide.
|
|
vendredi 1 mai 2009 à 14:34:04 |
Re : Problème de connaissance en javascript

Arto_8000
|
Réponse acceptée !
Tu peux binder sur une fonction un contexte et des paramètres qui seront ajoutés automatique à son appel. Pour faire simple, la plus plupart du temps ce qui est utilisé est ceci (c'est tiré de la librairie prototype) :
Function.prototype.bind = function() { var __method = this, args = $A(arguments), object = args.shift(); return function() return __method.apply(object, args.concat($A(arguments))); } }
function $A(iterable) { if (!iterable) return []; if (iterable.toArray) { return iterable.toArray(); } else { var results = []; for (var i = 0, length = iterable.length; i < length; i++) results.push(iterable[i]); return results; } }
que tu utilises par la suite comme ceci :
$(inputs[i]).onclick = function (ajax, action){ eval(gen_onclick(ajax,action)); }.bind(this, ajax, action)
|
|
lundi 4 mai 2009 à 18:37:43 |
Re : Problème de connaissance en javascript

alexflex25
|
Merci beaucoup, je viens de comprendre énormément de choses. Merci encore!
|
|
Cette discussion est classée dans : action, var, ajax, onclick, inputs
Répondre à ce message
Sujets en rapport avec ce message
question sur "action=OnClick" [ par michong ]
salut a tousje debute alors je voudrais savoir si il été possible d'effectuer deux actions sur le clic d'un bouton ???exp : je voudrais imprimer puis
changer une ligne de script?? [ par inthecorner ]
Bonjour,je suis un newbie en javascript...ma Table ASP... if
[html]Onclick + banière de pub [ par captainfalko ]
Bonjour, J'ai une baniere de pub (MisterBot)que je souhaite associé a un évenement Onclick pour mes html. Je voudrais enfait, lors du clic sur la ban
Modifier le paramètre d'une fonction appelé par onclick dans un layer [ par jfmaze ]
J'ai un layer dont le cellules peuvent évoluer en valeur et aussi sur le paramètre de la fonction qui est appelée.- lors de la création du layer le on
Ajax - getelementsbytagname is not a function? [ par jnbdzjnbdz ]
Bonjour, je travaille depuis un certain temps sur une application web faite avec ajax et PHP. Je viens de rencontrer un problème qui m'empêche d'avanc
Changement de script dynamique de onclick sur html [ par cousinlol ]
Bonsoir,J'ai fait un script qui me permet sur un formulaire sur un clic d'effectuer une alternance d'image et de traitement déclenché par onclick :[co
probleme avec IE action onClick [ par 27 ]
Salut,j'ai un probleme que je n'arrive pas a resoudre avec IE. J'ai un select comportant plusieurs option qui font appel au onClick. Sous firefox l'ap
Double action pour un OnClick [ par lunnatick ]
Bonjour, je voudrais créer un lien avec l'évènement OnClick qui effectue deux opérations, je par avec ceci: [code]Le lien[
Onclick sur le bouton d'une alert [ par SeNeO64 ]
Bonjour,N'ayant rien pu trouver de convainquant sur le net, je me retourne vers ce forum.J'aimerais savoir s'il est possible d'effectuer une action pr
Probleme sur onclick [ par eddie5150 ]
Bonjour à tous,voila j'ai un probleme bizarre,lorsque je fait ceci :for(var i=0;i!=3;i++){ var td = tr.insertCell(-1); td.onclick = function() {
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
|