我在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();
申请插件没什么特别的。
有什么想法吗?提前谢谢。
答案 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
,也无效;那么你应该知道有时浏览器需要新的页面来加载代码并生效!
所以关闭您的标签并打开新标签页并转到项目页面查看更改!