# Select box question

**URL:** <https://www.ruby-forum.com/t/select-box-question/101759>\
**Category:** Ruby\
**Created:** [August 7, 2006, 8:01pm UTC](https://www.ruby-forum.com/t/select-box-question/101759 "2006-08-07T20:01:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shanan\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@Shanan\_S](https://www.ruby-forum.com/u/Shanan_S)\
**Post date:** [August 7, 2006, 8:01pm UTC](https://www.ruby-forum.com/t/select-box-question/101759/1 "2006-08-07T20:01:03Z")

</div>

Hi,

Yet another newbie here… I’m writing an appliction in Rails, and I’ve  
Ajaxified my select boxes so they update dynamically. I used the  
“observe\_field” method to monitor changes to my select box. I find that  
it’s kind of erratic… it updates constantly and makes the selection  
for me, based on where my mouse happens to be hovering when it does its  
observation. Not very user friendly. I’d much rather the onChange  
event, but I’m not sure exactly how to write the syntax for using the  
event.

Here’s my code as it is now:

 \<%= options\_from\_collection\_for\_select( Product.find\_all, "proddesc\_pk", "prod\_name" ) %\> \<%= observe\_field("product[proddesc\_pk]", :frequency =\>0.25, :update =\> "component\_id\_list", :url =\> { :action =\> :fill\_component\_box}, :with =\> "'id='+value") %\>

How would I go about changing that code so that it updates based on an  
onChange event, rather than the observation?

Any help would be greatly appreciated!

Thanks,  
~ Shanan

---

<div class="post-metadata">

**Author:** ![Shanan\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@Shanan\_S](https://www.ruby-forum.com/u/Shanan_S)\
**Post date:** [August 7, 2006, 9:16pm UTC](https://www.ruby-forum.com/t/select-box-question/101759/2 "2006-08-07T21:16:11Z")

</div>

Hi,

On 8/7/06, Shanan S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Here’s my code as it is now:  
> :with =\> “‘id=’+value”)  
> %\>
> 
> How would I go about changing that code so that it updates based on an  
> onChange event, rather than the observation?
> 
> Any help would be greatly appreciated!
> 
> Thanks,  
> ~ Shanan

If you ask directly on rails forum ([Ruby on Rails — Community](http://rubyonrails.com/community))  
it’s possible that you’ll receive an answer sooner, as there are more  
folks who know 😉

J.

---

<div class="post-metadata">

**Author:** ![Shanan\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@Shanan\_S](https://www.ruby-forum.com/u/Shanan_S)\
**Post date:** [August 7, 2006, 9:19pm UTC](https://www.ruby-forum.com/t/select-box-question/101759/3 "2006-08-07T21:19:12Z")

</div>

On Aug 7, 2006, at 11:00 AM, Shanan S. wrote:

> ```
> :url => { :action => :fill_component_box},
> 
> ```

Here is how you can use the onchange event which is much nicer to  
work with:

```
			  <%= select_tag( 'product[proddesc_pk]',
			                    options_from_collection_for_select(

```

Product.find\_all, “proddesc\_pk”, “prod\_name”) ,  
:onchange =\> remote\_function(:with =\>  
“‘proddesc\_pk =’+value”,  
:loading =\> “Element.show(‘loading-indicator1’)”,  
:url =\> { :action =\> :  
fill\_component\_box } ) %\>

Doing it that way will put the value in params[: proddesc\_pk] for  
you . You can then respond with rjs to fill whatever you need to fill.

Cheers-  
-EZra
