XSL et accès aux objets dynamiquement créés avec Javascript [Résolu]

Messages postés
5
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
28 novembre 2009
- - Dernière réponse : Bul3
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
- 22 nov. 2009 à 11:00
Bonjour à tous,

Auriez-vous une solution pour pouvoir accéder (en javascript) à des objets dynamiquements créés par une feuille XSL?

l'objectif est de pouvoir manipuler les éléments dans la fonction job(), le souci est que je ne connais pas le nom de l'objet <select>...

Est-il possible de compléter dynamiquement le paramètre name de l'objet select en fonction des données contenues dans la source xml?

<xsl:for-each select="Object">
<select size="5" name= "liste" STYLE ="width: 160px" onchange="job(this)">
<option><xsl:value-of select="Name"/></option>
</select>
</xsl:for-each>


D'avance merci pour votre attention :)
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
3
Merci
mettez le même name.
et utilisez document.name_formulaire.name_select[index]
voire
for ( var n= 0;n<document. name_formulaire .name_select.length;n++ )
{ traiter document.name_formulaire.name_select[n]

ou mettez un id progressif
id ="select1", id="select2"....
et utilisez document.getElementById("select"+index)
voire
var n=1;
while ( document.getElementById("select"+n) )
{ traiter document.getElementById("select"+n)
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 130 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Bul3
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
3
Merci
ch'tiot exemple ? ( sans xml/xsl ! )
<script>
function trt(quoi)
{	for ( var n=0;n<document.frm.sel.length;n++ )
{	if ( quoi!=document.frm.sel[n] )
{	alert(n);	}
}
}
</script>
<form  name="frm">
<select name="sel" onchange="trt(this);" size="3">
<option>1
<option>2
</select>
<select name="sel" onchange="trt(this);" size="3">
<option>I
<option>II
</select>
<select name="sel" onchange="trt(this);" size="3">
<option>un
<option>deux
</select>
</form>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 130 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Bul3
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
Bonjour,
>>Est-il possible de compléter dynamiquement
>>le paramètre name de l'objet select en
>>fonction des données contenues dans la source xml?
peut-être... mais quelles données ?
et surtout : pourquoi faire ?????
derrière pour utiliser comment faire
si on ne connait pas le name ?
>>
...onchange="job(this);">

ben voila, un name est inutile
function joc(quoi)
{ et ici quoi.selectedIndex, 
quoi.options[quoi.selectedIndex] .value ou .text
quoi.length.... tout du select est accessible
}

Cordialement [mon Site] [M'écrire] Bul
Commenter la réponse de Bul3
Messages postés
5
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
28 novembre 2009
0
Merci
Hello Bul, merci de t'intéresser à mon problème.

Immaginons que le fichier xml comporte 5 nodes <Objet> et que nous ajoutions un for-each à l'intérieur de la première boucle for-each afin de créer des options dans les différentes listes.

pour chacun des select, la fonction Job fonctionnera car elle sera appelée depuis son constructeur et nous pouvons effectivement travailler avec this.
Mais si je veux atteindre les autres listes (par exemple pour annuler toutes les sélections sauf sur dernièrement choisie)????

Merci
Commenter la réponse de ekinox001