簡體   English   中英

從下拉列表中刪除重復項

[英]Removing duplicates from a dropdownlist

我有一個下拉列表,該列表返回重復項。 我不知道為什么它返回重復項。 這是我的下拉菜單的控件。

    @Html.DropDownList("procDateId", Model.GetEmpHoursDateRange.EmphoursdateSelectList, Model.GetEmpHoursDateRange.selectedEmplhoursdate, new { id = "procDateId" })

我希望能夠在頁面加載后刪除重復項。 我用警報測試了下面的代碼,並能夠訪問文檔。

     $(document).ready(function () {

            alert("here you go !!!");

            [].slice.call($('#procDateId').option)
              .map(function (a) {
                  if (this[a.innerText]) {
                      $('#procDateId'.option).removeChild(a);
                  } else {
                      this[a.innerText] = 1;
                  }
              }, {});

        });

這是我的下拉列表呈現的html。

    <select id="procDateId" name="procDateId">
     <option value>1/11/2017</option>
     <option value>1/11/2017</option>
     <option value>1/10/2017</option>
     <option value>1/9/2017</option>
    </select>

上面的代碼沒有刪除重復項。 沒運氣。 請協助。

選項的jQuery選擇器顯示不正確: $('#procDateId').option -> ('#procDateId option')

此外,您可以直接在該選項上調用remove

jsfiddle: https ://jsfiddle.net/db9zczr0/

加倍的原因是您正在使用defaultOption = Model.GetEmpHoursDateRange.EmphoursdateSelectList 返回的值是重復值。

默認選項出現在列表的開頭,其值為空。 默認選項用於傳達未從列表中選擇任何選項的信息,例如,當下拉控件表示可選參數時。

來自https://msdn.microsoft.com/zh-cn/library/gg548012(v=vs.111).aspx

因此,您將需要使用其他重載,例如

HtmlHelper.DropDownList方法(字符串,IEnumerable,對象)

然后,在IEnumerable<SelectListItem>的控制器循環中,告訴控制器使用保存的會話值顯示選定選項,並為匹配項設置Selected = true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM