Envoyé par : Raphael
Date : 25/11/2006 12:12
Bonjour, pour faire simple, on va dire que j'ai :
Mon fichier .xul se présente comme ça :
<listbox id="maliste" onselect="ChargeMesValeurs();"> <textbox id="textbox1" /> <textbox id="textbox2" />
Et mon .js :
document.getElementById('textbox1').setAttribute('value', "Valeur1 de la ligne sélectionnée"); document.getElementById('textbox2').setAttribute('value', "Valeur2 de la ligne sélectionnée");
Bon, a priori jusque-là, tout marche très bien... Selon ma sélection dans mon listbox, mes valeurs se chargent correctement et s'affichent dans mes textbox.
Maintenant, je voudrais pouvoir modifier le contenu de ces textbox pour un enregistrement ultérieur. Alors, je clique sur ma "Ligne1" par exemple et je rajoute "(Modif)", ce qui me donne : "Valeur1 de la ligne sélectionnée(Modif)"...
Et c'est là que le problème survient : Lorsque je veux sélectionner une autre ligne dans mon listbox, mon textbox1 ne change plus de valeur ! Alors que mon textbox2 si... En sélectionnant l'une de mes lignes, j'ai le comportement suivant :
Pour moi, étant donné que je n'ai pas "sauvegardé" mes modifs, la fonction ChargeMesValeurs() devrait recharger la valeur d'origine non ? et même si par miracle, elle gardait mes changements, comment se fait-il que lorsque je clique sur "Ligne2", il n'y a que mon textbox2 qui charge la bonne valeur ?
C'est comme si à partir du moment où je touche à un textbox, il se figeait et sa propriété value ne pouvait plus être changée... ?
Je suis vraiment perdu, sauriez-vous d'où vient le problème ?
Merci d'avance pour votre aide.
Envoyé par : laurentj
Date : 26/11/2006 13:46
ton problème semble étrange, mais ton code encore plus.. Cela mériterait des précisions sur ton code xul et ton code js (ce que tu as mis est trop imprécis et flou)
Envoyé par : Raphael
Date : 26/11/2006 23:45
Bien mon code n'est vraiment pas compliqué, on peut carrément dire qu'il ressemble comme 2 gouttes d'eau au tutoriel de composants sur Hevanet : http://www.hevanet.com/acorbin/xul/top.x(..)
Section Lists, regarde le 2° listbox, celui intitulé "with single selection". Quand tu cliques sur une ligne, ça écrit la ligne dans le description juste au-dessous.
Ben mon code, c'est exactement la même chose, sauf que que je mets ça dans un textbox plutôt... Et donc tout va bien... sauf quand je clique sur ce dernier pour modifier le texte (en vue d'un enregistrement à vocation "d'édition"), là, mon textbox reste bloqué et ne change plus selon mon choix dans le listbox.
Voilà, j'espère que j'ai été assez clair... Le principe étant très très simple, je ne comprends vraiment pas d'où peut venir le problème.
Merci encore.
Envoyé par : thefab
Date : 27/11/2006 10:12
Au lieu de
document.getElementById('textbox1').setAttribute('value', "Valeur1 de la ligne sélectionnée");
Essaye
document.getElementById('textbox1').value = "Valeur1 de la ligne sélectionnée";
C'est vrai que la plupart du temps il faut plutôt utiliser setAttribute(), à tester donc...
Envoyé par : Raphael
Date : 27/11/2006 10:21
J'hallucine... ça marche. Saurais-tu le pourquoi du comment ? Car avant, j'utilisais ce que tu me proposes et ayant eu quelques problèmes, je suis passé à ma 1ère méthode qui semblait marcher.
Enfin, que tu saches ou pas la raison du problème, tu l'as résolu donc un grand merci à toi thefab !
Envoyé par : thefab
Date : 27/11/2006 11:06
En fait les attributs et les propriétés sont 2 choses différentes, les 2 ne sont pas toujours synchronisés ça dépend du code de l'auteur.
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.