javascript - 添加 sum 并将其替换为 3 个选择

标签 javascript jquery calculator

我想构建一个小型票据计算器,其中包含 3 个选项,在选择下拉菜单时,这些选项可实时加起来为一笔总和。

$(document).ready(function() {

$package = 0;
    $('#package-selection select').each(function(e) {
        $(this).on('change', function(e) {
            //console.log( this.value );
            //console.log( $(this).find(":selected").text() );

            $package = this.value * parseInt($(this).find(":selected").text());
            console.log($package);
            updateCount();
        });
    });


    $sum = 0;
    function updateCount() {
        $sum = $package;
        $('#sum').attr("value", "€ " + $sum +",-");
    }
    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="package-selection">
    <h3>Choose Package</h3>

    <label for="tickets-Festivalpackage">Festivalpackage € 50,-</label>
    <select class="form-control" name="tickets-Festivalpackage">
        <option value="50">0</option>
        <option value="50">1</option>
        <option value="50">2</option>
        <option value="50">3</option>
        <option value="50">4</option>
        <option value="50">5</option>
    </select><br>
    <label for="tickets-Friday">Friday € 30,-</label>
    <select class="form-control" name="tickets-Friday">
        <option value="30">0</option>
        <option value="30">1</option>
        <option value="30">2</option>
        <option value="30">3</option>
        <option value="30">4</option>
        <option value="30">5</option>
    </select><br>
    <label for="tickets-Saturday">Saturday € 30,-</label>
    <select class="form-control" name="tickets-Saturday">
        <option value="30">0</option>
        <option value="30">1</option>
        <option value="30">2</option>
        <option value="30">3</option>
        <option value="30">4</option>
        <option value="30">5</option>
    </select>
</div>
<br>
<br>
 <input style="background: none; border: none; outline: none;" type="text" readonly="readonly" id="sum" name="sum" value="€ 0,-"/>

我不知道将这些值相加到一个总和中的最佳方法是什么。

例如示例计算可以是: 2 张“节日套票”门票(50 欧元,-) 3 张“周六”门票(30 欧元,-) 总和:190,-

作为旁注:下拉列表是从后端动态构建的,并以这种方式出现。

最佳答案

首先,使用 change() 函数捕获每个select-box 上的 change 事件。其次,使用each()函数迭代每个选择框,如果它发生变化,则将每个选择框的值与价格相乘> 并添加到 $package 变量中。最后 - 通过调用 updateCount 函数更新整个价格。

$(document).ready(function() {
  $('.form-control').change(function() {
    $package = 0;
    $('.form-control').each(function() {
      $package += $(this).find(":selected").text() * $(this).find(":selected").val();
    });
    updateCount();
  });

  function updateCount() {
    $sum = $package;
    $('#sum').attr("value", "€ " + $sum + ",-");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="package-selection">
  <h3>Choose Package</h3>

  <label for="tickets-Festivalpackage">Festivalpackage € 50,-</label>
  <select class="form-control" name="tickets-Festivalpackage" id='package'>
        <option value="50">0</option>
        <option value="50">1</option>
        <option value="50">2</option>
        <option value="50">3</option>
        <option value="50">4</option>
        <option value="50">5</option>
    </select><br>
  <label for="tickets-Friday">Friday € 30,-</label>
  <select class="form-control" name="tickets-Friday" id='friday'>
        <option value="30">0</option>
        <option value="30">1</option>
        <option value="30">2</option>
        <option value="30">3</option>
        <option value="30">4</option>
        <option value="30">5</option>
    </select><br>
  <label for="tickets-Saturday">Saturday € 30,-</label>
  <select class="form-control" name="tickets-Saturday" id='saturday'>
        <option value="30">0</option>
        <option value="30">1</option>
        <option value="30">2</option>
        <option value="30">3</option>
        <option value="30">4</option>
        <option value="30">5</option>
    </select>
</div>
<br>
<br>
<input style="background: none; border: none; outline: none;" type="text" readonly="readonly" id="sum" name="sum" value="€ 0,-" />

关于javascript - 添加 sum 并将其替换为 3 个选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42612998/

相关文章:

javascript - 从模态 Bootstrap 提交表单

javascript - 将链接附加到 D3 树布局中矩形的一侧

java - 如何在 Java 中将字符串转换为运算符?

javascript - 将保留按钮添加到表的第 4 列。链接到灯箱/弹出窗口

converters - javascript更改字符串中的字符

jquery - Google map 多边形渲染不正确

calculator - 如何在卡西欧 fx-991ES 计算器中计算 Mod b

Java Switch语句: creating a calculator error

javascript - 为什么这个JS解构赋值方法可以用于反转单链表?

javascript - 类型错误 : Converting circular structure to JSON - find error in json