Get selected value from a collection_select

I have an edit form and I need to get the SELECTED VALUE from a collection_select in a variable.

So if I have this...

<%= f.collection_select :part_id, @parts, :id, :cost_and_name, :prompt => "Select" %>

How can I peek inside and get, for example, the part_id?

Leonel *.* wrote in post #1018324:

I have an edit form and I need to get the SELECTED VALUE from a collection_select in a variable.

So if I have this...

<%= f.collection_select :part_id, @parts, :id, :cost_and_name, :prompt => "Select" %>

How can I peek inside and get, for example, the part_id?

Okay, look at this:

__________ ____________

       > > > browser> 2) | server |        > <--- response -- | |

+--------+ (html page) ------------ 3) User makes 1) ruby code a selection executes

What you are asking is: "In step 1 can I obtain the user's selection?" The answer, obviously, is no. The ruby code executes before the user makes a selection.

However, if your select is inside a form, then when the user submits the form, the selection will be in params, and it can be accessed like this: params[:name_of_select]. If you don't know what the value of the select's name attribute is, do a 'View Source' when the select appears in your browser, and look at the name attribute.

You can also use javascript to get the value of the select, but you need to know javascript/jquery to do that, and based on your question, I'm guessing you don't know either one.

It's a form. Has a drop-down menu, created by a collection_select. Since it's an edit page, then the value is ALREADY SELECTED by the time you get to that edit page.

That default value is set by the model, through the controller, when the view is rendered.

At what level do you need to *get* the value? (Because, as 7stud pointed out, it's already known to the system.) If you need to get the value in a JavaScript within the page, you can either use rjs to set the variable value, or you can use regular JS to read the current value out of the form element.

  val = $F('your_element_id'); //prototype JS

Walter

I have an edit form and I need to get the SELECTED VALUE from a

collection_select in a variable.

So if I have this…

<%= f.collection_select :part_id, @parts, :id, :cost_and_name, :prompt

=> “Select” %>

How can I peek inside and get, for example, the part_id?

the value selected when the page is rendered will be equal to f.object.part_id