table 表格自动计算

本文介绍了一个使用HTML和JavaScript实现的动态表格,该表格可以自动计算每行的小计和总金额,并支持添加和删除行。当数量或单价发生变化时,对应的小计会自动更新,同时也会重新计算总计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

页面样式

页面代码

<table class="table table-bordered table-hover dataTable" id="tabelList">
                        <thead>
                            <tr class="firstRow">
                                <td>名称</td>
                                <td>规格/型号</td>
                                <td>生产单位</td>
                                <td>供货单位</td>
                                <td>订购数量</td>
                                <td>单价</td>
                                <td>小计</td>
                                <td>操作</td>
                            </tr>
                        </thead>
                        <tbody id="ListView">
                            <tr>
                                <td>
                                    <input class="text-center form-control"  type="text" />
                                </td>
                                <td>
                                    <input class="text-center form-control"  type="text" />
                                </td>
                                <td>
                                    <input class="text-center form-control"  type="text" />
                                </td>
                                <td>
                                    <input class="text-center form-control" type="text"/>
                                </td>
                                <td>
                                    <input class="text-center form-control txtQuantity "  type="text"  />
                                </td>
                                <td>
                                    <input class="text-center form-control txtPrice"  type="text"  />
                                </td>
                                <td>
                                    <input class="text-center form-control txtAmount"  type="text"  />
                                </td>
                                <td onclick="deleteRow(this)"><button type="button" class="btn btn-danger waves-effect">删除</button></td>
                            </tr>
                        </tbody>
                        <tfoot>
                            <tr>
                                <td colspan="5" style="text-align:right;">总计</td>
                                <td colspan="3"><span id="total"></span></td>
                            </tr>
                        </tfoot>
                    </table>
                    <button type="button" onclick="AddList()" class="btn btn-success waves-effect">添加一行</button>

js代码

function CalcSum() {
            var total_sum = 0;
            $("#tabelList .txtAmount").each(function () {
                var val = $(this).val();
                if ($.isNumeric(val)) {
                    total_sum += parseFloat(val);
                }
            });
            $("#total").html(total_sum);
            $("#TotalMoney").val(total_sum);
        }
     ///数量列任何一个文件框数据变化事件 $(
"#tabelList").on('input', '.txtQuantity', function () { var self = $(this); var tr = self.closest("tr"); var quantity = self.val(); var Price = tr.find(".txtPrice").val(); var amount = 0 if ($.isNumeric(quantity) && $.isNumeric(Price)) { amount = quantity * Price; } tr.find(".txtAmount").val(amount); CalcSum(); });
    ///价格列任何一个文件框变化事件 $(
"#tabelList").on('input', '.txtPrice', function () { var self = $(this); var tr = self.closest("tr"); var quantity = tr.find(".txtQuantity").val(); var Price = self.val(); var amount = 0 if ($.isNumeric(quantity) && $.isNumeric(Price)) { amount = quantity * Price; } tr.find(".txtAmount").val(amount); CalcSum(); });     ///删除一行 function deleteRow(obj) { var index = obj.parentNode.rowIndex; var table = document.getElementById("tabelList"); table.deleteRow(index); CalcSum(); } ///添加一行 function AddList() { var html = '<tr>' + '<td>' + '<input class="text-center form-control" type="text" />' + '</td>' + '<td>' + '<input class="text-center form-control" type="text"/>' + '</td>' + '<td>' + '<input class="text-center form-control" type="text" />' + '</td>' + '<td>' + '<input class="text-center form-control" type="text"/>' + '</td>' + '<td>' + '<input class="text-center form-control txtQuantity" type="text" />' + '</td>' + '<td>' + '<input class="text-center form-control txtPrice" type="text" />' + '</td>' + '<td>' + '<input class="text-center form-control txtAmount" type="text" />' + '</td>' + '<td onclick="deleteRow(this)"><button type="button" class="btn btn-danger waves-effect">删除</button></td>'+ '</tr>'; $("#tabelList").append(html); };

 

转载于:https://www.cnblogs.com/king-sxx/p/10609244.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值