observe_field and select_tag...

I have this select field:

<label for='user_access'>Access</label>
<%= f.select :access, ['Global', 'Carrier', 'Winery'], :prompt =>
"Choose One" %>

being observed by:

<%= observe_field :user_access, :on => 'blur',
                               :url => {:action
=> :find_access}, :frequency => 0.25,
                               :with => 'value' %>

When the user selects an option like 'Carrier' I'd like an empty div
to be replaced with a partial of carrier names... I'm doing this with:

page.replace_html :user_options, :partial =>
'shipper_options', :object => @shippers

in the find_access.rjs file. My problem is that if I have the select
list open and roll over 'Carrier' it does the replace_html on the
div... is there a way to make it wait until the user actually selects
the value 'Carrier'?

Thanks for any help... this is my first foray into AJAX and I know
this is probably a stupidly simple issue.

SH

shenry wrote:

I have this select field:

<label for='user_access'>Access</label>
<%= f.select :access, ['Global', 'Carrier', 'Winery'], :prompt =>
"Choose One" %>

being observed by:

<%= observe_field :user_access, :on => 'blur',
                               :url => {:action
=> :find_access}, :frequency => 0.25,
                               :with => 'value' %>

When the user selects an option like 'Carrier' I'd like an empty div
to be replaced with a partial of carrier names... I'm doing this with:

page.replace_html :user_options, :partial =>
'shipper_options', :object => @shippers

in the find_access.rjs file. My problem is that if I have the select
list open and roll over 'Carrier' it does the replace_html on the
div... is there a way to make it wait until the user actually selects
the value 'Carrier'?

Thanks for any help... this is my first foray into AJAX and I know
this is probably a stupidly simple issue.

SH

The seleced value transmitted to the server is the current value of your
selectbox. Untill an option is not clicked it is not selected.

I think a better event would be onchange instead of on blur, to trigger
your ajax query. Like that no need to observe the field all the time, so
i'ts better for the app.

I've changed the select field to be:

<%= f.select :access, ['Global', 'Carrier', 'Winery'], :prompt =>
"Choose One",
                     :onchange => remote_function(:url => {:action
=> :find_access}) %>

nothing happens when changing the selection (I don't see the onchange
in the html source either...)

Should I be coding the javascript manually, rather than using helpers?

thx

SH

D'oh... here is what works =>

<%= f.select :access, ['Global', 'Carrier', 'Winery'], {:prompt =>
"Choose One"},
      :onchange => remote_function(:url => {:action => :find_access},
      :with => "'value=' + value") %>

wasn't paying attention to the curly braces.

thanks nico,

SH