【问题标题】:JQuery - Dropdown selection needs to reset only dropdowns with same value selectedJQuery - 下拉选择只需要重置选择相同值的下拉列表
【发布时间】:2013-10-31 05:39:42
【问题描述】:

我有一系列下拉列表作为列标题,其值包括“姓名”、“地址”、“电话”等。客户端数据将加载到行中,然后用户可以从每个下拉列标题中选择正确的字段映射他们的数据。

我想做的是一次只允许选择一个选项的一个实例。例如,如果用户从第一列下拉列表中选择了“名称”,然后他们改变主意并从第二列下拉列表中选择“名称”,则第一个下拉列表应恢复为默认的“选择某些东西”选项值。

使用以下内容,如果用户在任何列上设置值,它将重置所有其他列:

$('select').change(function(){
    $('select').not(this).val('0');
});

但我只想重置选中了 $(this).val() 的列。我试过用这个,但它什么也没做:

$('select').change(function(){
    $('select option[value='+ $(this).val() +']').not(this).val('0');
});

这也失败了:

$('select').change(function(){
    $('select').not(this).find('option[value='+ $(this).val() + ']').val('0');
});

有什么想法吗?谢谢!

这是 html -- 下拉列表的数量会根据上传的客户端数据而变化:

<select class="fun" id="field1" name="col[]">             
  <option value="0" selected>- Please select a field -</option>
  <option value="1">Name</option>
  <option value="2">Address</option>
  ...
</select>

<select class="fun" id="field2" name="col[]">             
  <option value="0" selected>- Please select a field -</option>
  <option value="1">Name</option>
  <option value="2">Address</option>
  ...
</select>

【问题讨论】:

    标签: jquery


    【解决方案1】:

    试试这个解决方案

        $('select').change(function () {
            var secondSelect = $('select').not(this);
            if (secondSelect[0].selectedIndex == this.selectedIndex) {
                secondSelect[0].selectedIndex = 0;
            }
        });
    

    【讨论】:

      【解决方案2】:

      试试

      $('select').change(function(){
          $('select').not(this).has('option[value="'+  this.value + '"]:selected').val('0');
      });
      

      演示:Fiddle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-18
        • 1970-01-01
        • 2013-01-12
        • 2013-07-29
        • 2019-02-26
        相关资源
        最近更新 更多