2016-07-15 54 views
1

我想要一個select_tag,其中包含一個顯示「請選擇」給用戶的字段。 該字段不能由用戶選擇。如何讓select_tag具有「選中禁用隱藏」選項?

這裏是什麼,我希望有一個的jsfiddle:http://jsfiddle.net/gleezer/pm7cefvg/1/

在Rails,我試圖做到這一點:

<%= select_tag(:userchief, options_for_select(@options_for_selectUsers, {:selected => "x1", :disabled => "x1", :hidden => "x1"})) %> 

@options_for_user是一個包含多個鍵/值元素的數組) 但是,當我檢查我的網頁的源代碼,我可以看到這個對我的選項:

<option disabled="disabled" selected="selected" value="x1">Select</option> 

這不是我想有什麼,x1選擇選項出現在選擇的下拉菜單中,因爲隱藏字段不存在。

我該如何獲得與我在jsfiddle鏈接中看到的結果相同的結果?

回答

2

使用:prompt =>「佔位符」,如果您希望佔位符僅在表單呈現時屬性爲零時才顯示。它將被默認選中,但如果用戶提交,則不會保存任何內容。如果屬性已經被填充(可能是因爲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> 

OR

用途:include_blank => 「佔位符」,如果你想在任何時候呈現的列表中的佔位符。變更後

更新

下面的代碼將禁用提示。這與你的例子非常相似。

<%= select_tag(name = 'person', options_for_select(User.all.unshift("your prompt message"), selected: prompt, disabled: prompt,)) %> 

如果你想刪除提示的選擇更改比你需要使用jQuery。

$("#selectBox").change(function(){ 
    $("#selectBox option[value='']").remove(); 
}​); 
+0

源http://stackoverflow.com/questions/4557701/ruby-on-rails-how-do-i-use-a-default-placeholder-thing-in-a-select-tag – power

+0

它根本不起作用,我已經嘗試過了,在你的回答中你使用了其他形式的選擇。 –

+0

我已經更新了我的答案的select_tag,其中包含提示選項並將其轉換爲html。希望這會有所幫助! – power