Select2 -- 占位符不显示

问题描述 投票:0回答:5

我在我的 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"
    }
})

有人可以告诉我我在这里做错了什么吗?

javascript jquery asp.net asp.net-mvc jquery-select2
5个回答
4
投票

我认为占位符是一个字符串。不是一个物体 https://select2.github.io/examples.html#placeholders

$("select").select2({
    allowClear: true,
    placeholder:"Select an Title"

})

4
投票

错误是

placeholder: "Select an Title"
。应该是-

$("select").select2({
    allowClear: true,
    placeholder: {
        id: "0",
        text: "Select an Title" //Should be text not placeholder
    }
})

https://select2.org/placeholders


3
投票

我写在这里是因为我花了很多时间找出代码中的问题。 我也没有显示占位符 object (而占位符 string 显示正确)。要点是空选项元素需要将值与占位符 id 相匹配。 我的意思是,如果您放置第一个空选项,如下所示:

<option></option>

它不会与声明为的占位符匹配

placeholder : { id:'0', text:'Please select...'}

并且它不会显示任何内容。 相反,你应该写:

 <option value="0"></option>

1
投票

注意如果使用多选 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,
      }
  },

0
投票

我使用普通的 CSS 来实现:

ul#select2-recruiting_status_cb-container:empty::after {
content: 'Recruting Status';
}

快乐编码:)

© www.soinside.com 2019 - 2024. All rights reserved.