微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Laravel 循环中的 jquery .change()

如何解决在 Laravel 循环中的 jquery .change()

我试图在 Laravel 循环中使 js 动态化。

我的意图是在从“产品”选择中选择产品时,加载其值。

Laravel 视图:

@for ($i = 0; $i <= sizeof($fibra["voz"]) - 1; $i++)
  <div class="form-group">
    <label for="wifi">Wifi {{ $i + 1 }}</label>
    <select class="form-control wifi" name="wifi" data-repeat="{{ $i }}" required>
      <option selected hidden disabled>Elige un wifi...</option>
      @foreach ($wifis_inversor as $wifi_inversor)
        <option data-comission="{{ $wifi_inversor->commission }}" value="{{ $wifi_inversor->name }}">{{ $wifi_inversor->name }}</option>
      @endforeach
    </select>
  </div>
@endfor

我的jQuery代码

var comision = $('.comision_total');
var comision_total = 0;
var comision_total_wifi = 0;
    
$('.wifi').change(function () {
    var idRepeat = $('.wifi').attr("data-repeat");
    var comision_wifi = $('.wifi[data-repeat=' + idRepeat + ']').find(':selected').data('comission');
    comision_anterior = comision_total_wifi;
    comision_total_wifi = comision_wifi;
    comision_total = comision_total + comision_total_wifi - comision_anterior;
    comision.val(comision_total);
});

我的目的是在任何选择中,产品发生变化时动态添加“佣金”。但它只适用于我的第一次选择。第二个没有。我该如何解决

解决方法

这将从第一个匹配元素中找到属性值,而不是恰好被更改的元素:

$('.wifi').attr("data-repeat")

要从更改的元素中获取 data-repeat 值,请参阅 this

$(this).attr("data-repeat")

或者:

$(this).data("repeat")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。