cs_astridette
Messages postés5Date d'inscriptionlundi 4 décembre 2006StatutMembreDernière intervention 6 décembre 2006
-
4 déc. 2006 à 13:54
cs_astridette
Messages postés5Date d'inscriptionlundi 4 décembre 2006StatutMembreDernière intervention 6 décembre 2006
-
6 déc. 2006 à 08:40
Bonjour,
j'ai un page html avec un tableau dans lequel sont présents plusieurs select. Ce tableau est contruit dynamiquement avec un ajouter ligne et un supprimer ligne.
J'ai trois select, select1,select2,select3. Quand je choisis l'option non dans le select1, je mets en disabled select2 et select3. J'appelle une fonction javascript avec this.
Mon problème est de savoir quel est l'index du select1 dans mon formulaire pour savoir quel select 2 et 3 je dois griser.
En gros mon code est celui ci (en php pour la partie html)
<select name="select1[]" onchange=griser(this)></select>
<select name="select2[]"></select>
<select name="select3[]"></select>
En javascript
griser(this)
{
document.frmPrincipal.elements[indiceduselect+1].disabled="disabled";
}
Comment trouver indiceduselect sachant que mon table peut contenir de 1 à n lignes.
Je ne peux pas utiliser l'ID car je suis susceptible de supprimer un ligne ou d'en ajouter.
lesdis
Messages postés403Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 7 août 2020 4 déc. 2006 à 16:26
Je ne voit pas trop ce que tu veut faire mais si tu cherche a trouver quel est l'index selectionné dans ta liste, tu as la propriété selectedIndex qui te permettra de recupérer l'index et peut importe le nombre de lignes existantes.
cs_astridette
Messages postés5Date d'inscriptionlundi 4 décembre 2006StatutMembreDernière intervention 6 décembre 2006 4 déc. 2006 à 16:41
ce n'est pas l'index de l'item sélectionné dans la liste mais l'index de mon select dans le formulaire.
Par exemple si j'ai ce code :
<form name=myform>
<select name=select1>
</select>
<select name=select2>
</select>
<select name=select3>
</select>
</form>
En javascript on accède aux différentes listes avec :
form.elements[0].name => select1
form.elements[1].name => select2 .....
Mon problème est que le nom de mon select est un tableau sous la forme nom[] et donc je ne connais pas l'index de mon select. Je voudrais donc le retrouver.
cs_Marcial
Messages postés57Date d'inscriptionsamedi 3 mai 2003StatutMembreDernière intervention31 juillet 2008 4 déc. 2006 à 17:32
slt,
Ce que tu demande est très simple et si tu avais chercher un peu
tu aurais trouvé facilement... Enfin...
Donc si j'ai bien compris, ce que tu veux c'est savoir quelle ligne
du select a été choisie par l'utilisateur...
var resultat=document.getElementById('TonSelect1').selectedIndex;
___________________________________________
Le plus grand des défauts de l'homme c'est de toujours
pointer un doigt accusateur... Mais jaimais devant un miroir... ___________________________________________
<script language='javascript'>
function test(obj){
var x =0;
while(obj.parentNode.elements[x]){
if (obj.parentNode.elements[x] == obj)
alert('le select activé est l\'element n°' + x + ' du Form');
x++;
}
}
</script>
Bonne continuation en espérant avoir pu t'aider
Vous n’avez pas trouvé la réponse que vous recherchez ?
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 4 déc. 2006 à 18:02
B
onjour...
j'opterais pour une solution du type
chaque SELECT de la ligne 1 a un ID du genre ID= "L01_x" ou x est la position sur la ligne
ensuite dans la fonction
griser(this) tu récupère l'ID et sont index
var szID = this.ID;
var Pos = szID.indeOf("_");
var szLigne;
//-- Récup Numéro ligne
if( Pos > -1){
szLigne =
cs_astridette
Messages postés5Date d'inscriptionlundi 4 décembre 2006StatutMembreDernière intervention 6 décembre 2006 5 déc. 2006 à 09:03
mon soucis c'est que le nom du select n'est pas clairement identifié puisqu'il est sous la forme nom[].
J'ai bien cherché avant de poser la question et je n'ai rien trouvé.
Pour l'idée des indice ce n'est pas possible car je suis amenée à reconstruire mon tableau avec mes select régulièrement ce serait vraiment trop galère de gérer des indices.
Je vais essayer la solution proposée par lesdis.
C'est seulement dommage que ce ne soit pas possible de trouver facilement l'index d'un objet dans un formulaire.
Quand l'utilisateur clique sur ajouter une ligne on clone la première ligne du tableau.
Ce que je veux faire c'est que quand l'utilisateur choisit ne pas arrêter les select contenant l'heure et les minute soit disabled.
Voici la fonction javascript appelée sur le onchange du select arrêt.
function changeArret(link) {
var td = link.parentNode;
var table = getParent(td, 'TABLE');
var index = getParent(td, 'TR').rowIndex;
var heure_select = (index-1)*4 - 2;
var min_select = heure_select + 1;
if (table.id == "tableau_weekend")
{
var max = document.getElementById("tableau_weekday").rows.length;