【问题标题】:jquery .change() in a laravel loopjquery .change() 在 laravel 循环中
【发布时间】:2021-08-19 12:52:32
【问题描述】:

我正在尝试使 js 在 laravel 循环中动态化。

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

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);
});

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

【问题讨论】:

    标签: jquery laravel laravel-blade


    【解决方案1】:

    这将从 first 匹配元素中找到属性值,而不是碰巧被更改的那个:

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

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

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

    或者:

    $(this).data("repeat")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-11
      • 2017-09-24
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      相关资源
      最近更新 更多