select2 在另一个选择时不删除默认 0 值

select2 not removing default 0 value when another selection

当我select值在select2多个selection中时,列表中仍然有默认的0值。 任何想法如何删除它?

div class="row mg-t-20">
                        @Html.LabelFor(m => m.ActivityThatIsAssigned, new { @class = "col-sm-4 form-control-label" })
                        <div class="col-sm-8 mg-t-10 mg-sm-t-0">
                            @Html.DropDownListFor(m => m.ActivityThatIsAassignedId, Model.ActivityThatIsAssigned, new { @class = "dropdown js-ActivityThatIsNotAssigned-dropdown", @multiple = "multiple", @style = "width: 100%;" })
                            @Html.HiddenFor(m => m.ActivityThatIsAassignedId)
                        </div>
                    </div>

模型项目

[Display(Name = "Activity that is assigned")]
    public IEnumerable<SelectListItem> ActivityThatIsAssigned { get; set; }

初始化select2

 $(".dropdown").select2({ width: '100%' });

    $(".js-selectlinkedinprofile, .js-selectbatch, .js-selecttag, .js-selectfanactivity, .js-selectfandeliveryaction, .js-ConnectedToOtherProfiles").prepend('<option value="0"></option>');

    $(".dropdown.js-selectfandeliveryaction, .dropdown.js-selectlinkedinprofile, .dropdown.js-selectbatch, .dropdown.js-selecttag, .dropdown.js-selectfanactivity, .dropdown.js-selectfandeliveryaction, .dropdown.js-ActivityThatIsAssigned-dropdown, .dropdown.js-ActivityThatIsNotAssigned-dropdown, .dropdown.js-ConnectedToOtherProfiles" ).select2();

    $(".js-selectlinkedinprofile, .js-selectbatch, .js-selecttag, .js-selectfandeliveryaction,.js-ConnectedToOtherProfiles").val("0").trigger("change.select2");

我认为你可以在服务器端(控制器)自行删除它。

循环 ActivityThatIsAssignedId 列表,如果等于零则将其从列表中删除。

您必须删除 html 中的隐藏输入。删除此行:

@Html.HiddenFor(m => m.ActivityThatIsAassignedId)

还有:

  • 确保默认 SelectListItem 值设置为 ""null 在你的 Model.ActivityThatIsAssigned collection.
  • 确保 ActivityThatIsAassignedId 可以为空。 (例如 int?