Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Remplacer l'attribut name du html

Envoyé par : Discret3

Date : 30/12/2006 01:23

Bonjour.

J'ai plusieurs onglets (dont le nombre varie dynamiquement) qui contiennent exactement le même formulaire. Voici un exemple simplifié:

<tabbox id="periodes">
<tabs>
<tab value="Periode 1" />
<tab value="Periode 2" />
</tabs>
<tabpanels>
<tabpanel>
<textbox name="montant" />
</tabpanel>
<tabpanel>
<textbox name="montant" />
</tabpanel>
</tabpanels>
</tabbox>

Je cherche un moyen simple d'accéder à chaque balise textbox en utilisant un attribut non-unique. En html, j'aurais fait:

var montant = document.getElementsByName("montant")[i];

où i est le numero de la période.

Malheureusement, la méthode getElementsByName ne fonctionne qu'en html. je ne peux pas utiliser l'attribut id puisse qu'il doit être unique. Je peux difficilement donner un identifiant différent par onglet, puisque chaqun doit etre ensuite traité par le même script.

Je ne peux pas non plus utiliser document.getElementsByTagName(), parce que certains champs sont des textbox, d'autres des menulist.

Il est possible de récupérer chaque champ en codant en dur l'emplacement exacte dans l'arbre des noeuds, mais avec cette méthode, je ne pourrais plus ajouter un noeud sans devoir refaire tout mon script.

Je cherche donc un moyen d'obtenir un tableau des noeuds ayant une valeur particulière à un attribut.

Comment puis-je faire ?

# Re: Remplacer l'attribut name du html

Envoyé par : thefab

Date : 30/12/2006 18:46

Il faut que tu obtiennes l'onglet actuellement sélectionné et ensuite que tu accèdes à ta zone de texte. Ca devrait donner quelque chose comme ça:

var onglets = document.getElementById("periodes");
var onglet = onglets.selectedItem;
var texte = onglet.childNodes[2].childNodes[1];

Uniquement si tous les formulaire sont absolument identiques.

# Re: Remplacer l'attribut name du html

Envoyé par : chris

Date : 30/12/2006 21:51

Bonjour,

Je ne voudrais pas dire une bêtise, mais tu ne pourrais pas utiliser

getElementsByAttribute("name", "montant")

tout simplement ?

# Re: Remplacer l'attribut name du html

Envoyé par : Discret3

Date : 31/12/2006 01:48

C'est exactement ce que je cherchais.

Merci chris.

# Re: Remplacer l'attribut name du html

Envoyé par : chris

Date : 31/12/2006 06:12

Je t'en prie.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.