9

我在我的 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();我通过没什么特别的应用插件。

有任何想法吗 ?提前致谢。

4

7 回答 7

19

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

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

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

也许使用jQuery来添加它

$(".chzn-select").prepend("<option></option>");
于 2012-07-25T12:32:01.643 回答
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>");
于 2013-01-27T05:52:20.407 回答
1

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

当您初始化所选字段时,您必须不使用宽度大小的 % 。

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

});

于 2015-04-09T16:04:01.293 回答
0

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

于 2012-07-25T12:52:04.957 回答
0

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

于 2013-01-25T05:40:34.263 回答
0

默认文本支持

Chosen 通过读取选择元素的数据占位符值自动设置默认字段文本(“选择一个国家...”)。如果不存在数据占位符值,它将默认为“选择一个选项”或“选择一些选项”,具体取决于选择是单个还是多个。您可以根据需要在插件 js 文件中更改这些元素。

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

于 2013-05-24T12:01:57.460 回答
0

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

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

于 2014-04-17T11:55:41.327 回答