# Can you use observe\_field to watch a select list and then update the 	contents of a text field?

**URL:** <https://discuss.rubyonrails.org/t/can-you-use-observe-field-to-watch-a-select-list-and-then-update-the-contents-of-a-text-field/33991>\
**Category:** rubyonrails-talk\
**Created:** [September 4, 2008, 11:36am UTC](https://discuss.rubyonrails.org/t/can-you-use-observe-field-to-watch-a-select-list-and-then-update-the-contents-of-a-text-field/33991 "2008-09-04T11:36:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sharon\_Machlis](https://avatars.discourse-cdn.com/v4/letter/s/d9b06d/32.png) [@Sharon\_Machlis](https://discuss.rubyonrails.org/u/Sharon_Machlis)\
**Post date:** [September 4, 2008, 11:36am UTC](https://discuss.rubyonrails.org/t/can-you-use-observe-field-to-watch-a-select-list-and-then-update-the-contents-of-a-text-field/33991/1 "2008-09-04T11:36:07Z")

</div>

Before I waste more time trying to figure that out, I was wondering if it's even possible? The Rails Way says that observe\_field by default will trigger changes in text fields and text areas, and on clicks for radio buttons and check boxes. So perhaps I'm using the wrong tool here? Thanks.

---

<div class="post-metadata">

**Author:** ![Frederick\_Cheung](https://sea2.discourse-cdn.com/rubyonrails/user_avatar/discuss.rubyonrails.org/frederick_cheung/32/3901_2.png) [@Frederick\_Cheung](https://discuss.rubyonrails.org/u/Frederick_Cheung)\
**Post date:** [September 4, 2008, 11:49am UTC](https://discuss.rubyonrails.org/t/can-you-use-observe-field-to-watch-a-select-list-and-then-update-the-contents-of-a-text-field/33991/2 "2008-09-04T11:49:15Z")

</div>

> Before I waste more time trying to figure that out, I was wondering if it's even possible? The Rails Way says that observe\_field by default will trigger changes in text fields and text areas, and on clicks for radio buttons and check boxes. So perhaps I'm using the wrong tool here? Thanks.

should do, but i'd just use an onChange handler.

Fred

---

<div class="post-metadata">

**Author:** ![Sharon\_Machlis](https://avatars.discourse-cdn.com/v4/letter/s/d9b06d/32.png) [@Sharon\_Machlis](https://discuss.rubyonrails.org/u/Sharon_Machlis)\
**Post date:** [September 7, 2008, 4:37am UTC](https://discuss.rubyonrails.org/t/can-you-use-observe-field-to-watch-a-select-list-and-then-update-the-contents-of-a-text-field/33991/3 "2008-09-07T04:37:33Z")

</div>

So it's easy enough to pop some :onchange JavaScript code inline for a collection\_select drop-down list. That code adds value of what's selected to a couple of other text fields:

\<label for="venue\_id"\>Place\*:\</label\> \<%= collection\_select(:event, :venue\_id, @venues\_all, :id, :name, {:prompt =\> " Please select a location"}, {:onchange =\> "var id = this.value; document.forms[0].elements[2].value=(id);document.forms[0].elements[3].value=document.forms[0].elements[5].value"}) %\>

But I don't want the venue value (id number) in the text fields; I want venue.phone and venue.url in those fields. After numerous hours the past few days, I still don't understand how I can mix JavaScript and Ruby so I can access the venue.phone and venue.url values and have them update my form's other text fields. Any advice appreciated.

---

<div class="post-metadata">

**Author:** ![Frederick\_Cheung](https://sea2.discourse-cdn.com/rubyonrails/user_avatar/discuss.rubyonrails.org/frederick_cheung/32/3901_2.png) [@Frederick\_Cheung](https://discuss.rubyonrails.org/u/Frederick_Cheung)\
**Post date:** [September 7, 2008, 10:13am UTC](https://discuss.rubyonrails.org/t/can-you-use-observe-field-to-watch-a-select-list-and-then-update-the-contents-of-a-text-field/33991/4 "2008-09-07T10:13:55Z")

</div>

> So it's easy enough to pop some :onchange JavaScript code inline for a collection\_select drop-down list. That code adds value of what's selected to a couple of other text fields:
> 
> \<label for="venue\_id"\>Place\*:\</label\> \<%= collection\_select(:event, :venue\_id, @venues\_all, :id, :name, {:prompt =\> " Please select a location"}, {:onchange =\> "var id = this.value; document.forms[0].elements[2].value=(id);document.forms[0].elements[3].valu e=document.forms[0].elements[5].value"}) %\>
> 
> But I don't want the venue value (id number) in the text fields; I want venue.phone and venue.url in those fields. After numerous hours the past few days, I still don't understand how I can mix JavaScript and Ruby so I can access the venue.phone and venue.url values and have them update my form's other text fields. Any advice appreciated.

One way would be to make an ajax call from the on change handler. The remote\_function helper is good for this. Something like remote\_function( :url =\> {...}, :with =\> "'id='+this.value")

Should submit the selected id to the specified action. You can then you some rjs to update the appropriate form elements.

Fred
