2012-07-25 42 views
9

我在ASP.NET MVC應用程序中使用jQuery選擇插件。當下拉列表中包含項目時,data-placeholder屬性不起作用。它不會顯示默認文本,而是自動選擇列表中的第一項。jQuery Chosen在填充時不顯示數據佔位符

這是我如何定義我的下拉列表。

@Html.DropDownListFor(m => m.Keep, Model.Data, 
    new { @class = "chzn-select", data_placeholder = "Default..." }) 

如果Model.Data爲空(使用EF填充到視圖模型中),則會顯示默認文本。否則,第一項被選中。我總是希望我的下拉列表顯示默認值。

我通過$('.chzn-select').chosen();套用插件沒什麼特別的。

任何想法?提前致謝。

回答

19

您需要先添加一個空選項。

按照文檔 - http://harvesthq.github.com/chosen/

注:單選擇,假定第一元素是由瀏覽器來選擇。要利用默認的文本支持,您需要包含一個空白選項作爲選擇列表的第一個元素。

也許使用jQuery添加它

$(".chzn-select").prepend("<option></option>"); 
+0

謝謝。有效。 – 2012-07-27 08:05:25

+1

如果你使用的是ASP.Net,你應該儘量使用Razor來完成所有的工作,比如@SametGunaydin的回答,而不是在jQuery中採取額外的步驟 – 2013-10-18 14:13:19

0

Becoz您的默認值是通過在列表中的值替換。因此要顯示您的默認值,請將您的列表中的默認值作爲第一項添加。

0

檢查是否有記錄綁定到列表中的第一個元素和模型

+0

這可能比回答更適合作爲評論。 – 2013-01-25 05:57:48

5
@Html.DropDownListFor(model => model.categoryModel.Id, ViewBag.CategoryList as SelectList, "", new { @class = "chzn_a", data_placeholder = "Choose Category.." }) 

添加「」你的SelectList後,如果下面的代碼沒有工作你

$(".chzn_a").prepend("<option></option>"); 
0

默認文本支持

Chosen通過讀取select元素的數據佔位符值自動設置默認字段文本(「Choose a country ...」)。如果沒有數據佔位符值,它將默認爲「選擇一個選項」或「選擇某些選項」,具體取決於選擇是單個還是多個。如果您認爲合適,您可以在插件js文件中更改這些元素。

注意:在單選中,第一個元素被假定爲由瀏覽器選擇。要利用默認的文本支持,您需要包含一個空白選項作爲選擇列表的第一個元素。 請參閱:Default Text Support

0

如果您的代碼即使添加空白option,不起作用;那麼你應該知道有時瀏覽器需要新的頁面來加載代碼並生效!

so 關閉您的標籤並打開新標籤並轉到您的項目頁面查看更改!

1

我有同樣的問題,我做了以下內容:

當你初始化所選擇的領域你有在寬度尺寸不使用%。

$(".chosen").chosen({ 
'no_results_text' :'Oops, nothing found!', 
'width'   :'700px', 
'search_contains' : true, 
'placeholder_text_multiple':'Please choose something ...', 
'display_selected_options':false    

});