首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从所有下拉列表中获取所选值,触发事件除外

从所有下拉列表中获取所选值,触发事件除外
EN

Stack Overflow用户
提问于 2016-11-18 11:26:35
回答 2查看 33关注 0票数 0

我想要检查是否有任何其他选定的值与当前选择相匹配。因此,当.payment-method更改时,我将得到值,并检查其他.payment-method的值。我想不包括引发变化的跌落。.not(this)不起作用。

代码语言:javascript
复制
$(document).on('change', '.payment-method', function() {
    var thisVal = $(this).val();
    console.log("this value" + thisVal);

    $(".payment-method option:selected").not(this).each(function () {
        console.log($(this).val());
    });
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-18 11:31:39

问题在于您使用not()option元素使用this,后者引用了select,因此它始终是假的。要解决此问题,请在包含not()元素的选择器上调用.payment-method,然后使用find()获取所选选项,如下所示:

代码语言:javascript
复制
$(document).on('change', '.payment-method', function() {
  $('.payment-method').not(this).find('option:selected').each(function() {
    console.log($(this).val());
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<select class="payment-method">
  <option value="foo">Foo</option>
  <option value="bar">Bar</option>
  <option value="fizz">Fizz</option>
  <option value="buzz">Buzz</option>
</select>
<select class="payment-method">
  <option value="foo">Foo</option>
  <option value="bar">Bar</option>
  <option value="fizz">Fizz</option>
  <option value="buzz">Buzz</option>
</select>
<select class="payment-method">
  <option value="foo">Foo</option>
  <option value="bar">Bar</option>
  <option value="fizz">Fizz</option>
  <option value="buzz">Buzz</option>
</select>

票数 0
EN

Stack Overflow用户

发布于 2016-11-18 11:32:39

要检查dupe值,可以过滤它,例如:

代码语言:javascript
复制
$(document).on('change', '.payment-method', function() {

  var thisVal = $(this).val();
  console.log("this value" + thisVal);

  var anyDupeVal = !!$(".payment-method").not(this).filter(function() {
    return this.value === thisVal
  }).length;

  console.log(anyDupeVal); // true or false

});

如果您想要所有其他的值,如您的标题所建议的,那么您可以映射它以获得一个值数组:

代码语言:javascript
复制
var otherValues = $(".payment-method").not(this).map(function() {
    return this.value
  }).get();

但是,这并不是很清楚你期望的结果是什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40675923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档