Html 如何使用带有“的select”标记;“选定禁用隐藏”;选项

Html 如何使用带有“的select”标记;“选定禁用隐藏”;选项,html,ruby-on-rails,html-select,erb,hidden,Html,Ruby On Rails,Html Select,Erb,Hidden,我想要一个select_标签,其中包含一个向用户显示“请选择”的字段。 用户不得选择此字段 以下是我想要的一些东西: 在Rails中,我尝试这样做: <%= select_tag(:userchief, options_for_select(@options_for_selectUsers, {:selected => "x1", :disabled => "x1", :hidden => "x1"})) %> 这不是我想要的,x1 select选项出现在se

我想要一个select_标签,其中包含一个向用户显示“请选择”的字段。 用户不得选择此字段

以下是我想要的一些东西:

在Rails中,我尝试这样做:

  <%= select_tag(:userchief, options_for_select(@options_for_selectUsers, {:selected => "x1", :disabled => "x1", :hidden => "x1"})) %>
这不是我想要的,x1 select选项出现在select的下拉菜单中,因为隐藏字段不存在

如何才能获得与JSFIDLE链接中相同的结果?

如果希望占位符仅在呈现表单时属性为nil时显示,请使用:prompt=>“Placeholder”。默认情况下,将选择它,但如果用户提交,则不会保存任何内容。如果属性已经填充[可能是因为a)有一个默认值或b)它是一个编辑表单],占位符项将从列表中完全忽略

select_tag "people", options_from_collection_for_select(@people, "id", "name"), prompt: "Select something"
# => <select id="people" name="people"><option value="">Select something</option><option value="1">David</option></select>

这是一个很老的方法,但是刚刚找到了一个不用js的好方法。可以肯定的是,这是基于公认的答案,所以要归功于作者。基本上,将
display:none
添加到所选选项会将其从选项列表中隐藏,但最初仍会显示在下拉列表中

CSS:

HTML:

<%= f.select :category, options_for_select([['New', 0, {class: 'hidden'}], ['Improved', 1], ['Fixed', 2]], selected: 0, disabled: 0) %>


source它根本不起作用,我已经试过了,在你的答案中你使用了另一种形式的select。我已经更新了我答案的select_标记,其中包含提示选项及其到html的转换。希望这会有帮助@TestAbalez,请尝试更新的选择标签。这与您提供的JSFIDLE非常相似。它不仅不会隐藏提示,而且会禁用提示。感谢您的帮助,但是当用户单击“选择”按钮时,是否可以从下拉列表中禁用提示?
<%=  select_tag(name = 'person', options_for_select(User.all.unshift("your prompt message"), selected: prompt, disabled: prompt,) ) %>
$("#selectBox").change(function(){
   $("#selectBox option[value='']").remove();
}​);
.hidden {
  display: none
}
<%= f.select :category, options_for_select([['New', 0, {class: 'hidden'}], ['Improved', 1], ['Fixed', 2]], selected: 0, disabled: 0) %>