Select with onChange


#1

Hi,

I’m trying to use a form.select with a a simple javascript alert.
This is my code.
<%= form.select(:entry_type, Entry::TYPES, :prompt => “Select The
Type”, :onChange => “alert(‘test’)”) %>

The form loads without any issue, but onChange is not in the HTML
source. Of course, since the onChange is not in the source, nothing
happens regardless of the list item I select.

Does anybody know what is going on? Why is the onChange not appearing
in the source?

Thanks


#2

the format for the select helper is the following:

select(object, method, choices, options = {}, html_options = {})

so you should use something like:

<%= select(object, method, choices, { :prompt => “Select the Type”}, {
:onchange => “alert(‘test’);”}) %>

Adam


#3

oozy wrote:

I’m trying to use a form.select with a a simple javascript alert.
This is my code.

<%= form.select(:entry_type, Entry::TYPES, :prompt => “Select The
Type”, :onChange => “alert(‘test’)”) %>

Here’s a working onChange under a different Rails function:

    <%=
      select( :user, :fighter_image_url, images,
              { :selected => current_user.fighter_image_url },
              { :onchange => '$("fighter_image_reflector").src =

“/images/fighters/”+this.value;’ } )
%>

One of the major joys and challenges of Rails is how many different ways
it
supports to pass raw HTML attributes into methods that generate HTML.
It’s a
credit to Ruby’s infinite flexibility that Rails can support so many.

For example, the above method doesn’t take just one trailing hash. (A
trailing hash is how most :foo => :bar magic works, without {}). In this
case, Rails takes some fixed arguments, then takes two hashes, one for
dynamic options and the other for raw HTML arguments.

Research the prototype to your select, and determine which argmument
gets
the :onchange.


Phlip
http://www.oreilly.com/catalog/9780596510657/
“Test Driven Ajax (on Rails)”
assert_xpath, assert_javascript, & assert_ajax


#4

how to use :onchange with select box in following case ?

<%= select(‘contact’, ‘city’, [ ‘Mumbai’, ‘Paris’, ‘London’], {
:onchange => “my_fun();” }) %>

here ‘my_fun()’ is my javascript function.

Any help ?


Thanks,
SN.


#5

just do:

<%= select(‘contact’, ‘city’, [ ‘Mumbai’, ‘Paris’, ‘London’], :onchange
=> :my_fun) %>

Suhas Nehete wrote:


Thanks,
SN.


Sincerely,

William P.