jQuery的总价值不断增加

时间:2018-12-18 12:26:02

标签: jquery html

我有一个总值(720),以及一个具有值的选择器,当您选择1项时,它会添加到720,例如,我得到740。但是,如果我选择更高或更低的值,它将添加到740。而不是720。我发现了有关updateTotal的内容。但是我只是愚弄了一下,无法使其正常工作。

所以我希望有人可以告诉我如何做到这一点。谢谢:)

我的html值输出:

<div class="SummaryRow">
  <h1><input type="yeets" name="_mdjm_event_cost" id="yett" class="mdjm-input-currency required" readonly="readonly" value="" placeholder="Totaal €0.00" style="
    height: 100px;
    width: 275px;
    margin-top: -40px;
    color: black;
    font-weight: bold;"/>
  </h1>
</div>

我的html选择器:

<select name="iFenceCorners" id="FenceCorners" class="AutosubmitCalculator" tabindex="3">
  <option value="0" selected="selected" data-price="00.00">Geen hoeken</option>
  <option value="1" data-price="20.00">1 hoek</option><option value="2" data-price="40.00">2 hoeken</option><option value="3" data-price="60.00">3 hoeken</option><option value="4" data-price="80.00">4 hoeken</option>
  <option value="5" data-price="100.00">5 hoeken</option><option value="6" data-price="120.00">6 hoeken</option><option value="7" data-price="140.00">7 hoeken</option><option value="8" data-price="160.00">8 hoeken</option>
  <option value="9" data-price="180.00">9 hoeken</option><option value="10" data-price="200.00">10 hoeken</option>
</select>

我的jquery:

$(document).ready(function(){
  base = 0;
  $("#FenceCorners").on("change", function() {
  var prev = $("#yett").val();
  prev = prev.split('€')[1];

    var total = (base * 100 + $(this).find(":selected").data("price") * 100) / 100; // selector HOEKEN
   total = parseInt(prev) + parseInt(total);
     $("#yett").val('Total €' + total.toFixed(2).replace(/\./g, ',')); // selector value added to total
  });

  $(function() {
    var begin = 720; // start value
    $("#yett").val('Total €' + begin.toFixed(2).replace(/\./g, ',')); // total value
  });
});

小提琴http://jsfiddle.net/z4v5r09s/

2 个答案:

答案 0 :(得分:2)

1。每次使用begin变量向其添加新的选定值。

2。var base完全不需要。

$(document).ready(function() {
  var begin = 720;
  $("#yett").val('Total €' + begin.toFixed(2));
  $("#FenceCorners").on("change", function() {
    var prev = $("#yett").val();
    prev = prev.split('€')[1];

    var total = ($(this).find(":selected").data("price") * 100) / 100;
    total = parseInt(begin) + parseInt(total); //use begin
    $("#yett").val('Total €' + total.toFixed(2));
  });
});

正在工作的小提琴:-http://jsfiddle.net/u69jyxkm/

答案 1 :(得分:1)

如果您始终使用720,只需更改total = parseInt(prev) + parseInt(total);

total = 720 + parseInt(total);

$(document).ready(function(){
  base = 0;
  $("#FenceCorners").on("change", function() {
  var prev = $("#yett").val();
  prev = prev.split('€')[1];

    var total = (base * 100 + $(this).find(":selected").data("price") * 100) / 100; // selector HOEKEN
   total = 720 + parseInt(total);
     $("#yett").val('Total €' + total.toFixed(2).replace(/\./g, ',')); // selector value added to total
  });

  $(function() {
    var begin = 720; // start value
    $("#yett").val('Total €' + begin.toFixed(2).replace(/\./g, ',')); // total value
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div><h1>
<input type="yeets" name="_mdjm_event_cost" id="yett" class="mdjm-input-currency required" readonly="readonly" value="" placeholder="Totaal €0.00" style="
    height: 100px;
    width: 275px;
    margin-top: -40px;
    color: black;
    font-weight: bold;"/>
  </h1>
</div>
<select name="iFenceCorners" id="FenceCorners" class="AutosubmitCalculator" tabindex="3">
  <option value="0" selected="selected" data-price="00.00">Geen hoeken</option>
  <option value="1" data-price="20.00">1 hoek</option><option value="2" data-price="40.00">2 hoeken</option><option value="3" data-price="60.00">3 hoeken</option><option value="4" data-price="80.00">4 hoeken</option>
  <option value="5" data-price="100.00">5 hoeken</option><option value="6" data-price="120.00">6 hoeken</option><option value="7" data-price="140.00">7 hoeken</option><option value="8" data-price="160.00">8 hoeken</option>
  <option value="9" data-price="180.00">9 hoeken</option><option value="10" data-price="200.00">10 hoeken</option>
</select>