prompt in select_tag

How can I use select_tag to

1. Have a prompt like "Select a Value" ( selected by default )

I tried this but did not work:

        <%= select_tag :current_course,
                 options_for_select( Course.find(:all).map {|p|
[p.title,p.id]} ),
                                 { :prompt => "Select a Value" }
    %>

2. Generate a 'selected' event so that some action can be done like
submit the form or refresh the page?

Thanks in advance
- AJ

Abhishek Jain wrote:

How can I use select_tag to

1. Have a prompt like "Select a Value" ( selected by default )
I tried this but did not work:
        <%= select_tag :current_course,
                 options_for_select( Course.find(:all).map {|p|
[p.title,p.id]} ),
                                 { :prompt => "Select a Value" }
    %>

I do the find in the controller and feed the options_for_select two instance
variables: the options collection and the selected value.
e.g. select_tag(:priority, options_for_select(@courses, @selected_course))
@courses is just an array so you just put your "Select a Value" as the first
entry.
e.g., @courses = [["Select a Value", "Select a Value"]]
Then push the results of the find onto @courses.

> 2. Generate a 'selected' event so that some action can be done like

submit the form or refresh the page?

If I understand your question, you'll want to use observe_field on the
select_tag. It will fire an Ajax call back to the server when the value in
the select changes.

HTH,
Bill

Bill Walton wrote:

Abhishek Jain wrote:

How can I use select_tag to

1. Have a prompt like "Select a Value" ( selected by default )
I tried this but did not work:
        <%= select_tag :current_course,
                 options_for_select( Course.find(:all).map {|p|
[p.title,p.id]} ),
                                 { :prompt => "Select a Value" }
    %>

I do the find in the controller and feed the options_for_select two
instance
variables: the options collection and the selected value.
e.g. select_tag(:priority, options_for_select(@courses,
@selected_course))
@courses is just an array so you just put your "Select a Value" as the
first
entry.
e.g., @courses = [["Select a Value", "Select a Value"]]
Then push the results of the find onto @courses.

> 2. Generate a 'selected' event so that some action can be done like

submit the form or refresh the page?

If I understand your question, you'll want to use observe_field on the
select_tag. It will fire an Ajax call back to the server when the value
in
the select changes.

HTH,
Bill

Hey Bill

Thanks for the help. I could get the "prompt" in my selection list. I
havent tried observe_field yet but will give that a shot. Thanks again -
AJ