首页 > 解决方案 > 删除重复 Jquery 代码不适用于我的 MVC 表单上的所有下拉列表

问题描述

我正在使用在 Stakeoverflow 上找到的 jquery 代码来删除下拉列表中的重复值。我的问题是 jquery 代码适用于第一个下拉列表,但不适用于第二个下拉列表,欢迎任何帮助

第一个下拉菜单

<select id="AssetStoredWhere" name="AssetStoredWhere" class="form-control js-example-disabled-results 
     select">
   <option value="@ViewBag.AssetStoredWhere">@ViewBag.AssetStoredWhere</option>
   <option value="UK">UK</option>
   <option value="EU">EU</option>
   <option value="Worldwide">Worldwide</option>

</select>

2bd下拉

<select asp-for="Dpiaavailable" id="Dpiaavailable" name="Dpiaavailable" class="form-control js- 
   example-disabled-results select">
   <option value="@ViewBag.Dpiaavailable">@ViewBag.DpiaavailableValue</option>
   <option value="False">No</option>
   <option value="True">Yes</option>
</select>

jQuery代码

var seen = {};
jQuery('.select').children().each(function () {
    var txt = jQuery(this).attr('value');
    if (seen[txt]) {
        jQuery(this).remove();
    } else {
        seen[txt] = true;
    }
});

标签: javascriptjquerymodel-view-controller

解决方案


您需要另一个循环来遍历select元素本身,而不是遍历option每个元素的元素select。尝试这个:

$('.select').each(function() {
  var seen = {};
  $(this).children().each(function() {
    var $option = $(this);
    if (seen[$option.val()]) {
      $option.remove();
    } else {
      seen[$option.val()] = true;
    }
  });
});

推荐阅读