Posez votre question Signaler

Aide javascript

elhila 32Messages postés 13 décembre 2006Date d'inscription - Dernière réponse le 28 sept. 2007 à 21:29
slt, est c qu'il y a une méthode qui permet de récupérer l'indice de la case qui a été coché parmis les cases au niveau de javascript. et merci.
Lire la suite 

Aide javascript »

Suggestions
8 réponses
Réponse
+0
moins plus
sAlUt,

Supposant que tes cases à cocher (des checkbox ou radio) portent la même valeur d'attribut name, en JS tu peux faire genre :
var cases = document.formulaire.choix;
var i;
for(i=0; i<cases.length; i++) {
   alert(cases[i].checked);
}

Ici on a récupéré dans la variable "cases" un tableau de Checkbox. Le premier indice commence à 0 et la propriété "length" permet de connaître le nombre de cases à cocher. La propriété "checked" quant à elle permet de déterminer si la case a été cochée. Si elle l'est, comme tu es dans une boucle avec un cmpteur (ici "i") tu peux connaître sa position.

Pour que cet exemple soit cohérent, il faut que les <input type="checkbox" /> portent un attribut name="choix" et qu'ils soient englobés dans un <form name="formulaire">.
Ajouter un commentaire
Réponse
+0
moins plus
par exemple, document.formulaire.listCheckBox[1].value pour récupérer directement la valeur du check box, est c q'il y a une méthode permettant de récupérer l'indice de la case pour le transférer en paramétres à une autre fonction !
Ajouter un commentaire
Réponse
+0
moins plus
Ta question, identique au problème initial, trouve sa réponse dans mon premier post (et en plus dans ta dernière question). Si tu récupères la valeur d'une checkbox en spécifiant l'indice, c'est logique que cet indice représente aussi l'indice de la case. Comme je t'ai dit, il faut que tes input ayent la même valeur d'attribut name, tu n'as pas à les désigner par leur id (au passage obligatoirement différent pour chaque input).
<form name="f">
    <input type="checkbox" name="politesse" id="poli" value="je dis merci" />Merciiiiii
    <input type="checkbox" name="politesse" id="impoli" value="je ne dis pas merci" />Et comment on fait ??!!
</form>

Maintenant avec ça, faire document.f.politesse[1] te prend la deuxième case (on commence à compter à 0 j'ai dit) et c'est ce "1" que tu passeras en argument à ta fonction. Si à ça tu adaptes le bout de code de ma première réponse, c'est grâce au compteur "i" que tu connaîtras la position (l'indice).
var cases = document.f.politesse;
var indice;
for(indice=0; indice<cases.length; indice++) {
   if(cases[indice].checked) {
      alert("La case n° " + (indice + parseInt(1)) + " est cochée");
      //appel de la fonction avec indice en argument, qui représente la position de la checkbox dans la liste
   }
}
Ajouter un commentaire
Réponse
+0
moins plus
t'as pas comrpis le probleme. j'aimerai lorsque je clique sur une case, directement recupérer son indice ou bien valeur et le passer comme paramétre à une fonction. l'indice de la case qui a été coché va me permettre de faire les testes que je veut !!
autrement dis, avant de faire la boucle je dois avoir l'indice de la case qui a été coché.

je cherche une fonction javascript, comme ce truc la :

document.forms[0]."nom de groupe de checkbox".getSelectedIndex

getSelectedIndex ne trouve pas, mais je cherche une fonction qui fai ca directement !!!!
Ajouter un commentaire
Réponse
+0
moins plus
Haaaaaaaaaaaaan mais fallait le dire tout de suite :-p

Dans les balises input tu as la possibilité de définir l'attribut onclick. La référence this permet d'envoyer à une fonction l'objet courant.

Sur cet objet, tu sais accéder à la valeur grâce à la propriété value.
Pour la position j'en sais rien mais j'ai une solution temporaire pour toi :
function cliqueBox(box) {
	alert("La valeur de la case cliquée est \"" +  box.value + "\"");
	var politesses = document.f.politesse;
	var position = 0;
	while(i<politesses.length && politesses[i]!=box) {
	       i++ ;
	}
        position = i+1;
	alert("Sa position vaut " + position);
}

Ainsi chaque input ressemblera à
<input type="checkbox" name="politesse" id="poli" value="je dis merci" onclick="cliqueBox(this)" />Merciiiiii mais
<input type="checkbox" name="politesse" id="impoli" value="je ne dis pas merci" onclick="cliqueBox(this)" />T'as rien compris !!!!


PS : Ce code est truffé d'un message subliminal :roll: 8-} 8-)
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Bonjour,

vs n'avez pas encore compri le probleme. j'ai des checks box, pr cela j'ai utilisé le tag "multibox" pr tracer les cases à cocher, et j'ai utilsé le code suivant :

<logic:iterate id="centralelb" indexId="count" property="centralesLb" name="suiviProductionForm">
<bean:define id="centalebean" name="centralelb"
type="com.carrefour.cfou.beans.administration.AdministrationGenericBean" />
<html:multibox property="selectedCentrales" styleId="<%=String.valueOf(count)%>" onclick="javascript:cocherDecocher (document.forms[0].selectedCentrales['<%=String.valueOf(count)%>'].value);">
<bean:write name="centalebean" property="code" />
</html:multibox>
<bean:write name="centalebean" property="libelle"/><br/>
</logic:iterate>

je veut récupérer l'indice de la case qui a été coché au moment du clique, j'ai fais ca :

cocherDecocher(document.forms[0].selectedCentrales['<%=String.valueOf(count)%>'].value) mais ca marche pas !!!

je dois récuperer l'indice immédiatement au momoent du clique pr le passer comme paramétres..


et merci !!
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

En effet je n'ai pas compris le problème mais si tu me parles JavaScript, je ne te parle pas Struts. Je ne connais pas ce framework et je ne peux donc pas t'aider. Choisis un titre plus parlant, quelqu'un d'autre pourra peut-être t'aider. Bonne chance ! ;-)
Ajouter un commentaire
Réponse
+0
moins plus
Maintenant en lisant un peu de documents sur ce taglib, j'en comprends que ça génère un tableau "items" qui représente la liste des valeurs des checkbox au grand complet et un tableau "selecteditems" qui reprend la liste des items sélectionnés et rien d'autre.

Si tu recherches un élément sélectionné dans le tableau complet, tu connaîtras sa position et en fait on reste proche de la solution que je te propose, mais je ne peux pas t'en dire plus sur la façon de récupérer ces tableaux. Puis ça dépend du code généré par ce taglib, pour une manipulation JavaScript c'est le code HTML retourné par le framework qui prendra de l'importance.

Le JavaScript est exécuté côté client. Or, le client reçoit le code HTML produit par le framework. Donc, ton code JavaScript doit s'adapter au code HTML et non pas au code spécifique au framework.

Donc je te conseille de vérifier le code HTML généré par ces taglibs et le comparer à ce que tu attendais. Sur base de ça tu pourras rectifier le tir en Struts, mais là encore je ne serai pas en mesure de t'aider.
Ajouter un commentaire
Ce document intitulé « aide javascript » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook