我在我的 asp.net mvc 5 应用程序中使用 Select2 插件。根据 文档
如果您需要更大的灵活性,占位符选项允许您传入数据对象而不仅仅是字符串。数据对象的 id 应与占位符选项的值匹配。
我已经这样做了,但占位符仍然没有显示。
代码:
model.Step6.Titles.Insert(0, new SelectListItem() { Text = "Select a Title", Value = "0", Selected = true });
@Html.DropDownListFor(model => model.Step6.Title, Model.Step6.Titles, new { id="teamtitle", @style = "width: 100%;"})
$("select").select2({
allowClear: true,
placeholder: {
id: "0",
placeholder: "Select an Title"
}
})
有人可以告诉我我在这里做错了什么吗?
我认为占位符是一个字符串。不是一个物体 https://select2.github.io/examples.html#placeholders
$("select").select2({
allowClear: true,
placeholder:"Select an Title"
})
错误是
placeholder: "Select an Title"
。应该是-
$("select").select2({
allowClear: true,
placeholder: {
id: "0",
text: "Select an Title" //Should be text not placeholder
}
})
我写在这里是因为我花了很多时间找出代码中的问题。 我也没有显示占位符 object (而占位符 string 显示正确)。要点是空选项元素需要将值与占位符 id 相匹配。 我的意思是,如果您放置第一个空选项,如下所示:
<option></option>
它不会与声明为的占位符匹配
placeholder : { id:'0', text:'Please select...'}
并且它不会显示任何内容。 相反,你应该写:
<option value="0"></option>
注意如果使用多选 select2 似乎需要占位符作为对象。请参阅 https://codepen.io/louking/pen/BGMvRP?# 了解使用 yadcf 的通用示例(很抱歉造成额外的复杂性,但我相信 yadcf 将 select_type_options 直接传递给 select2)。 (以下摘录)
{
column_number:2,
select_type: 'select2',
filter_type: 'multi_select',
select_type_options:
{
placeholder: {
id: -1,
text: 'pick col2'
},
width: '200px',
allowClear: true,
}
},
我使用普通的 CSS 来实现:
ul#select2-recruiting_status_cb-container:empty::after {
content: 'Recruting Status';
}
快乐编码:)