observe_field radio

Hello,

I'm having trouble with observe_field and radio buttons. The issue is the observe_field action only fires the first time, subsequent clicks on radio buttons do nothing.

I've seen others post on this issue, but have not found any solutions.

CODE:

from view...

<label><%= radio_button_tag('types', 'p5p', (params[:dbinfo] ||= true)) %>P5P</label> <label><%= radio_button_tag('types', 'p5i', false) %>P5I</label>

<%= observe_field(:types_p5p,                     :udpate => 'categories',                     :url => {:action => 'update_module_categories'},                     :with => "'types=' + encodeURIComponent(value)",                     :on => 'click' ) %> <%= observe_field(:types_p5i,                     :udpate => 'categories',                     :url => {:action => 'update_module_categories'},                     :with => "'types=' + encodeURIComponent(value)",                     :on => 'click' ) %>

Andy Koch schrieb:

Hello,

I'm having trouble with observe_field and radio buttons. The issue is the observe_field action only fires the first time, subsequent clicks on radio buttons do nothing.

I've seen others post on this issue, but have not found any solutions.

CODE:

from view...

<label><%= radio_button_tag('types', 'p5p', (params[:dbinfo] ||= true)) %>P5P</label> <label><%= radio_button_tag('types', 'p5i', false) %>P5I</label>

<%= observe_field(:types_p5p,                     :udpate => 'categories',                     :url => {:action => 'update_module_categories'},                     :with => "'types=' + encodeURIComponent(value)",                     :on => 'click' ) %> <%= observe_field(:types_p5i,                     :udpate => 'categories',                     :url => {:action => 'update_module_categories'},                     :with => "'types=' + encodeURIComponent(value)",                     :on => 'click' ) %>

###############

This works the first time I click one of the radios, but never again.

Any ideas?

regards,

Andy Koch

>

In proper fashion I've solved my own problem. To save the next person from following yet another fruitless thread I'll post it. However, this comes with a caveat that I don't think this is a "best practices" solution. It does work, nonetheless.

Instead of using observe_field, which I'm concluding does not work properly with radio buttons; till someone tells me otherwise, I've embedded the AJAX call into the radio.

Code being better than talk:

<label><%= radio_button_tag('types', 'p5p', (params[:dbinfo] ||= true), {:onclick => "{new Ajax.Updater('categories','/public/update_module_categories', {asynchronous:true, evalScripts:true, parameters:'types=' + encodeURIComponent(value)})}"}) %>P5P</label>

<label><%= radio_button_tag('types', 'p5i', false, {:onclick => "{new Ajax.Updater('categories','/public/update_module_categories', {asynchronous:true, evalScripts:true, parameters:'types=' + encodeURIComponent(value)})}"}) %>P5I</label>

............... Thus, I first generated the AJAX code via the observe_field method. Then I copied out the relevant portions from the HTML source code and pasted into the 'onclick' option of the radio button. Then deleted the observe_field from the rhtml as it was now dead code.

It may not be pretty, but I can move to the next problem.

regards,

/ak