Laravel 5.6 - 选中框时增加数字

Laravel 5.6 - Increase number when box is checked

所以我得到了这个代码:

<div class="col-md-2">
  Services Available
  
  <div class="services">
    @foreach ($service as $service)
      <div class="service">
        <div id="checkboxes">
          <input type="checkbox" class="checkbox" name="rGroup" value="1" id="{{ $service->id }}" />
          <label class="whatever" for="{{ $service->id }}"><p class="serv-text"> {{ $service->service_name }} + ${{ $service->price }} </p></label>

        </div>
      </div>
    @endforeach

  </div>
</div>

<div class="col-md-2">
  Box Price
  <p div class="number">[=11=]</p>
</div>

而且我不知道该怎么做。我也试过 js 但没用。

所以我想做的是,当用户选中一个框(每个复选框在数据库中都有一个价格)时,class="number"文本必须实时增加数字。

$service->price 是复选框价格的名称。

我建议将价格放在一个跨度内,这样您就可以 select 它 class 并执行加法操作,例如:

$(':checkbox').on('change', function() {
  var number = 0;
  $(':checkbox:checked').each(function() {
    number += parseInt($(this).parent().find('.price').text());
  });
  $('.number').text('$' + number);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="col-md-2">
  Services Available

  <div class="services">
    <div class="service">
      <div id="checkboxes">
        <input type="checkbox" class="checkbox" name="rGroup" value="1" id="{{ $service->id }}" />
        <label class="whatever" for="{{ $service->id }}"><p class="serv-text">service_name 1 + $<span class="price">10</span></p></label>
      </div>
    </div>
    <div class="service">
      <div id="checkboxes">
        <input type="checkbox" class="checkbox" name="rGroup" value="1" id="{{ $service->id }}" />
        <label class="whatever" for="{{ $service->id }}"><p class="serv-text">service_name 2 + $<span class="price">20</span></p></label>
      </div>
    </div>

    <div class="service">
      <div id="checkboxes">
        <input type="checkbox" class="checkbox" name="rGroup" value="1" id="{{ $service->id }}" />
        <label class="whatever" for="{{ $service->id }}"><p class="serv-text">service_name 3 + $<span class="price">50</span></p></label>
      </div>
    </div>
  </div>
</div>

<div class="col-md-2">
  Box Price
  <p div class="number">[=11=]</p>
</div>

$('.checkbox').change(function() {
  var v = parseInt($('#hidden').val())
  this.checked ? (v+=1) : (v-=1)
  $('#hidden').val(v)
  document.getElementById('num').innerHTML =v;  
  
  // call ajax to update the value in the server
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" class="checkbox" name="rGroup" value="1" id="checkbox" />
<input type="hidden" id="hidden" value="0">
<p class="number"> $<span id="num">0 </span></p>