help with observe_field please!!!

Hi there I'm observing a field (collection_select) but if the
collection only has one item, the observe field will not work, it
works for more than one item
here is my code
<%= collection_select 'address', 'address', @addresses, :id, :address %></p>
<%= observe_field(
              :address_address,
              :update => 'shipping',
              :url => { :action => :shi },
              :on => "onselect",
              :complete => "new Effect.SlideDown('shipping')",
              :with => 'boo') %>

I have tried a different of bunch :on => event
but no efect
any help would be very aprreciated

Hi Jorge,

Jorge Mario G. Mazo wrote:

Hi there I'm observing a field (collection_select) but if the
collection only has one item, the observe field will not work

That's because, with only one item in the collection, there's no event occurring. I think you'll have to force the event by using a blank item, maybe with 'select one' for the text at the beginning of the collection. Check the option_from_collection_for_select documentation. You may need to modify your approach a little. It says 'you have to wrap this call in a regular HTML select tag.'

Another option would be to render your UI differently depending on the number of items in the collection.

hth,
Bill

To save you a dive down into the prototype.js library (since I was just there a week ago ;-), the only event that the underlying JavaScript supports is an implicit 'change' or 'click' depending on the element type (click for radio buttons and checkboxes, change for others).

I spent several hours tracking down odd behavior which was partly explained by this. (The other part was having an autocomplete and and observe-field on the same form element -- nasty timing issues there!)

-Rob

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com