我试图在.Net Core网站上使用select2作为我的下拉列表。我创建了一个下拉列表:
<select id="buildingIds" style="height:1em;"
class="form-control"
multiple
data-ajax--url="@Url.Action("GetLookupTableData", "Buildings")"
data-ajax--data-type="json"
data-placeholder="Select one or more buildings"><option></option></select>
然后在我的剧本中写道:
$('select').each(function () {
$(this).select2();
});
当我运行所有内容时,我的下拉列表始终响应&#34;未找到任何结果&#34;并且占位符永远不会出现。如果我将我的javascript更改为:
$('select').each(function () {
$(this).select2({
ajax: {
url: '/Buildings/GetLookupTableData',
dataType: 'json'
}
});
});
然后一切都按预期工作,除了占位符仍然没有出现。我不想为我网站中的每个选择对其进行硬编码。谁能告诉我为什么它没有读取数据属性?
修改 我不知道它是否有所作为,但我使用webpack捆绑我的javascript。不确定是否可以从select2中留下重要的东西。
编辑2 根据以下评论声明data- *属性仅替换现有选项,我将我的javascript更改为:
$('select').each(function () {
$(this).select2({
placeholder: "Select some options",
ajax: {
url: '',
dataType: 'json'
}
});
});
仍然没有快乐。显示的占位符是来自javascript的占位符,而不是来自data-placeholder属性的占位符,它仍然不会从data-ajax-url属性中提取URL。