How to name the blank value in select?

Go To StackoverFlow.com

26

I use simple_form in my app.

How do i give the blank value in my selects a different text than "" ?

I just find an option to include blank or not.

2012-04-05 21:10
by Ben


50

Ben,

It depends on how you are constructing your options for select. If you're doing it like the code below, just pass a string into the :include blank.

select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {:include_blank => 'Some text here'})

If you're setting the options with a options_for_select(), then you can do something like the following:

options_for_select([["Dollar", "$"], ["Kroner", "DKK"]])

With the value="" being the second value in the array and the name that shows up in the dropdown being first. So in your case, you could change the second answer to look like this:

options_for_select([["Some text here", ""], ["Dollar", "$"], ["Kroner", "DKK"]])
2012-04-05 21:18
by Josh Moore
This wasn't asked, but if you want the blank option not to be selectable you can add :include_blank => true, disabled: "", selected: "", placeholder: "Foo Bar"MCB 2014-09-23 15:06
Georgi has a better answer, below. instead of include_blank, use prompt: 'Which person?' It will have a blank value, but the display text you provide. include_blank only accepts a boolean -- it does not accept a string to display - David Hempy 2017-12-01 15:32


32

Instead of

:include_blank => true

Try

:include_blank => "your text here"

if this is what you are looking.

2012-04-06 11:24
by Demetris Constantinou
not really, that sets the label, not the value (attribute - zappan 2012-07-06 10:21
Although not the answer to the question - it was the answer to my question as I wanted to set the blank label - cheers - John Kloian 2014-02-20 15:05
This will not work for select_tag methods but will work with select methods. (And, yes, they are different.) Using a string for the value in the include_blank will only provide a blank option with no string. Use prompt in that case - Joshua Pinter 2015-06-15 21:05


22

If you are using the select_tag(name, option_tags = nil, options = {}) function, the correct option is :prompt => "Some text" rather than setting a string value for select

2012-10-23 07:52
by Georgi
Took me too long to figure out it is different for select_tag than a traditional select. Thanks - zarazan 2013-02-20 20:12
tag behaves so much differently all over the place. trips me up all the time, as well - Dudo 2014-08-23 03:46
This is absolutely correct and a bit tricky to understand. select_tag will accept a include_blank option but it will NOT display the text you pass as in as the value for that option. You need to use prompt for that. Thanks @Georgi - Joshua Pinter 2015-06-15 21:03


1

You can do this manually by adding ["Your Text", ""] to the beginning of the array passed to options_for_select, or add "<option value=\"\">#{h("Your Text"}</option>" to beginning of the string passed to select_tag.

2012-04-05 21:17
by tsherif
Ads