Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery根据所选选项计算小计和总价_Javascript_Jquery - Fatal编程技术网

Javascript 使用jquery根据所选选项计算小计和总价

Javascript 使用jquery根据所选选项计算小计和总价,javascript,jquery,Javascript,Jquery,我是jquery的新手,可能我的脚本编码不好,但我正在为大学制作一个在线电影项目,不知道我的预订系统出了什么问题。实际上,我已经得到了一个包含票的类型、价格和数量的表,我想根据用户的选择更新小计和总价。 不幸的是,我在这里研究了其他答案和一些教程,但没有一个适合我。 这是我的html表格: <table id="myTable" class="table table-bordered"> <thead> <tr>

我是jquery的新手,可能我的脚本编码不好,但我正在为大学制作一个在线电影项目,不知道我的预订系统出了什么问题。实际上,我已经得到了一个包含票的类型、价格和数量的表,我想根据用户的选择更新小计和总价。 不幸的是,我在这里研究了其他答案和一些教程,但没有一个适合我。 这是我的html表格:

    <table id="myTable" class="table table-bordered">
      <thead>
        <tr>
          <th>Ticket</th>
          <th>Price</th>
          <th>Quantity</th>
          <th><span id="subtotal" class="subtotal">Subtotal</span></th>
        </tr>
      </thead>
      <tfoot>
        <tr>
          <td colspan="2"></td>
          <td id="total"><span>TOTAL</span></td>
        </tr>
      </tfoot>
      <tbody>
      <tr>
        <td>Adult</td>
        <td><span id="price" class="price">£8.25</span></td>
        <td>
          <select class="form-control" id="qty" name="qty">
             <option value="0">0</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             <option value="9">9</option>
          </select>  
        </td>
        <td><span id="subtotal" class="subtotal">£0</span></td>
      </tr>
      <tr>
        <td>Junior</td>
        <td><span id="price" class="price">£6.75</span></td>
        <td>
          <select class="form-control" name="qty">
             <option value="0">0</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             <option value="9">9</option>
          </select> 
        </td>
        <td><span id="subtotal" class="subtotal">£0</span></td>
      </tr>
      <tr>
        <td>Senior</td>
        <td><span id="price" class="price">£6.75</span></td>
        <td>
          <select class="form-control" name="qty">
             <option value="0">0</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             <option value="9">9</option>
          </select> 
        </td>
        <td><span id="subtotal" class="subtotal">£0</span></td>
      </tr>
      <tr>
        <td>Student</td>
        <td><span id="price" class="price">£6.75</span> </td>
        <td>
          <select class="form-control" name="qty">
             <option value="0">0</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             <option value="9">9</option>
          </select> 
        </td>
        <td><span id="subtotal" class="subtotal">£0</span></td>
      </tr>
      </tbody>
      </table>
如果有人能帮助我,那就太好了。 提前非常感谢。

这里有一把小提琴:

我还在
tfoot
中做了一个HTML修复:

<tfoot>
    <tr>
        <td colspan="2"></td>
        <td><span>TOTAL</span></td>
        <!-- Fix: Moved the total field to the right place -->
        <td class="total"></td>
    </tr>
</tfoot>

全部的

所以现在它可以工作了,但是仍然存在一些问题<代码>id属性必须是唯一的,有多个
价格
小计
。我建议把它们去掉。

没问题。如果答案能帮你解决问题,请接受。
$(document).ready(function () {
    update_amounts();
    // Fix: Invalid selector for the select fields
    $('select[name=qty]').change(update_amounts);
});

function update_amounts() {
    var sum = 0.0;
    $('#myTable > tbody  > tr').each(function () {
        var qty = $(this).find('option:selected').val();
        // Fix: price is in text, not in a form field
        // and it must be cleaned from the pound sign
        var price = $(this).find('.price').text().replace(/[^\d.]/, '');
        var amount = (qty * price);
        sum += amount;
        $(this).find('.subtotal').text('£' + amount);
    });

    //just update the total to sum  
    $('.total').text('£' + sum);
}
<tfoot>
    <tr>
        <td colspan="2"></td>
        <td><span>TOTAL</span></td>
        <!-- Fix: Moved the total field to the right place -->
        <td class="total"></td>
    </tr>
</tfoot>