【问题标题】:Remove duplication Jquery code is not working on all dropdown on my MVC form删除重复 Jquery 代码不适用于我的 MVC 表单上的所有下拉菜单
【发布时间】:2021-03-03 16:57:10
【问题描述】:

我正在使用在 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;
    }
});

【问题讨论】:

    标签: javascript jquery model-view-controller


    【解决方案1】:

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

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

    【讨论】:

    • 感谢@Rory 的帮助
    • 没问题,很高兴为您提供帮助
    猜你喜欢
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2014-01-30
    相关资源
    最近更新 更多