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

Signaler
Messages postés
5
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
28 novembre 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
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 :)

4 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
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)
}
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
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>

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
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
Messages postés
5
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
28 novembre 2009

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