# Affichage automatique de la valeur d'un text\_field

**URL:** <https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749>\
**Category:** FR\
**Created:** [June 22, 2009, 12:11pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749 "2009-06-22T12:11:36Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 12:11pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/1 "2009-06-22T12:11:36Z")

</div>

Bonjour Ã tous,

Je travail sur appli. de gestion des RH. J’ai une table qui contient 4  
colonnes: id, echelle, echelon et indice.  
A chaque couple (echelle, echelon) correspond un indice unique:

id…echelle…echelon…indice  
1…11…1…254  
2…11…2…352  
3…10…1…287  
.  
.  
n

Dans un formulaire j’ai deux listes dÃ©roulantes (collection\_select))  
dont l’une pointe sur “echelle” et l’autre sur “echelon” et un  
text\_field qui pointe sur  
le champ “indice”.

Question: Comment afficher automatiquement la valeur du champ texte  
“indice” lors de la sÃ©lection des valeurs dans les deux listes  
dÃ©roulantes.

Exemple: Lorsque je sÃ©lectionne dans mes listes dÃ©roulantes echelle=11  
et echelon=1, la valeur 254 doit Ãªtre affichÃ©e automatiquement dans le  
champ de texte “indice”.

Merci pour toute aide.

removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 2:57pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/2 "2009-06-22T14:57:01Z")

</div>

DÃ©jÃ c’est du javascript. observe\_field peut-Ãªtre?

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 3:11pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/3 "2009-06-22T15:11:52Z")

</div>

Fernando P. wrote:

> DÃ©jÃ c’est du javascript. observe\_field peut-Ãªtre?

J’ai essayÃ© observe\_field, mais je ne sais pas comment rÃ©cupÃ©rer la  
valeur du champ “indice” de ma table.

le code suivant affiche la valeur 254 dans mon champ:

\<%= f.text\_field :indice, Grille.find(:all, :conditions =\> ‘echelle=11  
and echelon=1’)[0].indice.to\_s %\>

Comment Ã©crire un code Ã©quivalent dans une fonction js:

\<%= observe\_field(“personne\_echelle”,  
:on =\> “changed”,  
:frequency =\> 0.1,  
:function =\> " code ??? " ) %\>

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 3:31pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/4 "2009-06-22T15:31:25Z")

</div>

Prototype est embedded dans Rails, Ã§a simplifie le JavaScript et Ã§a  
tombe  
bien parce que c’est ce dont tu as besoin ici :  
[http://www.prototypejs.org/](http://www.prototypejs.org/)

Si tu aimes protoype, tu aimeras encore plus jQuery au bout de quelques  
temps :  
[http://docs.jquery.com/Main\_Page](http://docs.jquery.com/Main_Page)

Sinon, pour la mÃ©thode c’est assez simple :

- sÃ©lectionner tes champs et leur attribuer une rÃ©ponse Ã  
l’Ã©vÃ¨nement “change” : $(‘id\_de\_mon\_select’).observe(‘change’,  
function(event) { /\* le code Ã exÃ©cuter ici \*/ });
- dans la mÃ©thode de callback, changer la valeur du champs de texte, par  
exemple : $(‘id\_de\_mon\_champs\_de\_texte’).value = $F(‘id\_de\_mon\_select’);

Michel B.

2009/6/22 Bardach M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 3:36pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/5 "2009-06-22T15:36:13Z")

</div>

Michel B. a Ã©crit :

> Sinon, pour la mÃ©thode c’est assez simple :
> 
> - sÃ©lectionner tes champs et leur attribuer une rÃ©ponse Ã  
> l’Ã©vÃ¨nement “change” : $(‘id\_de\_mon\_select’).observe(‘change’,  
> function(event) { /\* le code Ã exÃ©cuter ici \*/ });
> - dans la mÃ©thode de callback, changer la valeur du champs de texte, par  
> exemple : $(‘id\_de\_mon\_champs\_de\_texte’).value = $F(‘id\_de\_mon\_select’);

Avec prototype il y a aussi les timed observer [1](http://prototypejs.org/api/timedObserver#method-form.element.observer) pour faire ce genre  
de chose qui sont bien pratiques et qui Ã©vitent d’avoir Ã gÃ©rer le type  
de champ.

–  
Martin C. || fuse  
[http://www.noremember.org](http://www.noremember.org)

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 3:48pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/6 "2009-06-22T15:48:34Z")

</div>

Michel B. wrote:

> Prototype est embedded dans Rails, Ã§a simplifie le JavaScript et Ã§a  
> tombe  
> bien parce que c’est ce dont tu as besoin ici :  
> [http://www.prototypejs.org/](http://www.prototypejs.org/)
> 
> Si tu aimes protoype, tu aimeras encore plus jQuery au bout de quelques  
> temps :  
> [jQuery API Documentation](http://docs.jquery.com/Main_Page)
> 
> Sinon, pour la mÃ©thode c’est assez simple :
> 
> - sÃ©lectionner tes champs et leur attribuer une rÃ©ponse Ã  
> l’Ã©vÃ¨nement “change” : $(‘id\_de\_mon\_select’).observe(‘change’,  
> function(event) { /\* le code Ã exÃ©cuter ici \*/ });
> - dans la mÃ©thode de callback, changer la valeur du champs de texte, par  
> exemple : $(‘id\_de\_mon\_champs\_de\_texte’).value = $F(‘id\_de\_mon\_select’);
> 
> Michel B.
> 
> 2009/6/22 Bardach M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

La valeur de mon champ de texte doit Ãªtre rÃ©cupÃ©rer de la table.  
Commment faire Ã§a en js?

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 3:54pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/7 "2009-06-22T15:54:49Z")

</div>

Parcourir la dom, avec prototype Ã§a se fait comme Ã§a : $$(‘#regle .de  
.ciblage .comme .en .css’)  
[http://www.prototypejs.org/api/utility/dollar-dollar](http://www.prototypejs.org/api/utility/dollar-dollar)

Pour lire le contenu d’un “Element” : ton\_element.content()

Tout simple.

AprÃ¨s

Michel B.

2009/6/22 Bardach M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 3:51pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/8 "2009-06-22T15:51:14Z")

</div>

Bardach M. a Ã©crit :

> La valeur de mon champ de texte doit Ãªtre rÃ©cupÃ©rer de la table.  
> Commment faire Ã§a en js?

En Ajax ?

–  
Martin C. || fuse  
[http://www.noremember.org](http://www.noremember.org)

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 3:59pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/9 "2009-06-22T15:59:00Z")

</div>

2009/6/22 Martin C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> de chose qui sont bien pratiques et qui Ã©vitent d’avoir Ã gÃ©rer le type  
> de champ.

En quoi un timed observer est-il plus simple qu’un observe(‘change’, …  
)  
avec callback ? Encore avec un champs de texte ou autre (oÃ¹ il n’y a pas  
moyen de le faire de toute faÃ§on) je comprend que Ã§a ait une utilitÃ©,  
mais  
sur un select Ã§a me semble un poil overkill perso, d’autant que le  
timedobserver rÃ©agira forcÃ©ment moins vite (il ne s’exÃ©cute que tous les  
tantiÃ¨me de seconde) et va plomber la machine (par exemple si le  
tantiÃ¨me de  
secondes est petit, et si le nombre d’Ã©lÃ©ments Ã surveiller est grand).

Michel B.

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 4:06pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/10 "2009-06-22T16:06:52Z")

</div>

Michel B. a Ã©crit :

> En quoi un timed observer est-il plus simple qu’un observe(‘change’, …  
> ) avec callback ?

Non ce n’est pas plus simple, juste une autre faÃ§on de faire qui pourra  
lui servir.

–  
Martin C. || fuse  
[http://www.noremember.org](http://www.noremember.org)

---

<div class="post-metadata">

**Author:** ![bardachrails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bardachrails](https://www.ruby-forum.com/u/bardachrails)\
**Post date:** [June 22, 2009, 4:29pm UTC](https://www.ruby-forum.com/t/affichage-automatique-de-la-valeur-dun-text-field/170749/11 "2009-06-22T16:29:56Z")

</div>

PrÃ©cisions SVP: Quelles fonctions ajax puis-je utiliser pour afficher la  
valeur de l’indice qui correspond Ã un couple (echelle, echelon)?
