jQuery Chosen在填充时不显示数据占位符

时间:2012-07-25 12:10:22

标签: jquery asp.net-mvc jquery-chosen

我在ASP.NET MVC应用程序中使用jQuery Chosen插件。当下拉列表中包含项目时,data-placeholder属性不起作用。它不会显示默认文本,而是自动选择列表中的第一项。

这是我定义下拉列表的方式。

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

如果Model.Data为空(使用EF在视图模型中填充),则显示默认文本。否则,选择第一个项目。我总是希望我的下拉列表显示默认值。

我通过$('.chzn-select').chosen();申请插件没什么特别的。

有什么想法吗?提前谢谢。

7 个答案:

答案 0 :(得分:19)

您需要先添加一个空选项。

根据文档 - http://harvesthq.github.com/chosen/

  

注意:在单次选择时,假定第一个元素由浏览器选择。要利用默认文本支持,您需要包含一个空白选项作为选择列表的第一个元素。

也许使用jQuery添加它

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

答案 1 :(得分: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>");

答案 2 :(得分:1)

我有同样的问题,我做了以下事情:

初始化所选字段时,您不得在宽度尺寸上使用%。

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

});

答案 3 :(得分:0)

Becoz您的默认值将替换为列表中的值。因此,要显示您的默认值,请将列表中的默认值添加为第一项。

答案 4 :(得分:0)

检查是否有记录绑定到列表中的第一个元素和模型

答案 5 :(得分:0)

默认文字支持

选择通过读取select元素的数据占位符值自动设置默认字段文本(&#34;选择国家/地区&#34;)。如果没有数据占位符值,则默认为&#34;选择一个选项&#34;或&#34;选择一些选项&#34;取决于select是单个还是多个。您可以根据需要更改插件js文件中的这些元素。

注意:在单个选择上,假定第一个元素由浏览器选择。要利用默认文本支持,您需要在选择列表的第一个元素中添加一个空白选项。 请参阅:Default Text Support

答案 6 :(得分:0)

如果您的代码即使添加了空白option,也无效;那么你应该知道有时浏览器需要新的页面来加载代码并生效!

所以关闭您的标签并打开新标签页并转到项目页面查看更改!