为什么我的第二个下拉菜单是复制我的第一个下拉菜单的更改操作

why does my second dropdown is copying the change action of my first dropdown

我有这 2 个下拉菜单,它们在 onchange 中具有相同的功能,如果我 Select 进行快速付款,它应该能够显示快速付款模式,但问题是第二个下拉菜单只是复制第一个下拉菜单的动作

<div class="sample" data-key="1001">
    <form class="form" id="form-1001">
    <select class="form-control">                                                                                                                                
        <option value="1">1</option>
        <option value="2">2</option>                                                                                                                                            
        <option value="express">Make Express Payment</option>
    </select>
    </form>
</div>
<div class="sample" data-key="1002">
    <form class="form" id="form-1002">
    <select class="form-control">                                                                                                                                
        <option value="1">1</option>
        <option value="2">2</option>                                                                                                                                            
        <option value="express">Make Express Payment</option>
    </select>
    </form>
</div>

例如

场景将是第二个下拉列表不会显示模式,但如果

结果将是第二个下拉菜单也将显示本应不显示的模式。

这里是 jquery 代码 $(this).data('key') 是 1002 或 1003。

$( ".sample" ).each(function() {
    alert($(this).data('key'));
    $( "#form-"+$(this).data('key')).change(function() {
        if ($("option:selected"). val() === "express") {
            $('#express-payment-modal').modal('show');
        }
      });
});

您在更改函数中使用了通用 jQuery 选择器 - $("option:selected") 这将为您提供数组中的两个元素。当有 val() 调用时,它会为您提供数组中第一个元素的值。试试这个 -

`$( "#form-"+$(this).data('key')).change(function(e) {
    if (e.target.value === "express") {
     //...
    }
 });