Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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:keyup事件的输入计算它们的和_Javascript_Jquery_Html_Input_Sum - Fatal编程技术网

Javascript:keyup事件的输入计算它们的和

Javascript:keyup事件的输入计算它们的和,javascript,jquery,html,input,sum,Javascript,Jquery,Html,Input,Sum,我不熟悉javascript及其事件。这是我的html代码表,我有一个收入标题和它各自的价格 <table class="table table-hover table-bordered" id="incomeId"> <thead> <tr> <th> sn </th> <th> Title of income </th> <th> Price <

我不熟悉javascript及其事件。这是我的html代码表,我有一个收入标题和它各自的价格

<table class="table table-hover table-bordered" id="incomeId">
  <thead>
    <tr>
      <th> sn </th>
      <th> Title of income </th>
      <th> Price </th>
      <th> Action </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>
        <select name="name" id="inputID" class="form-control">
          <option value=""> -- Select One --</option>                           
        </select>
      </td>
      <td>
        <input type="text" name="name" id="income_price" class="form-control income" value="" title="" required="required">
      </td>
      <td>
        <span class="glyphicon glyphicon-trash"></span>
      </td>

    </tr>
  </tbody>
  <tfoot>
    <tr>
      <td></td>
      <td></td>
      <td> Total: <div class="total" id="total"></div> </td>
      <td></td>
    </tr>
  </tfoot>
</table>

<button type="button" class="btn btn-info" id="add-new">Add New Income</button>
要在表javascript代码中添加新行

$('#add-new').on('click', function () {
        $("#incomeId").each(function () {

            var tds = '<tr>';

            jQuery.each($('tbody tr:last td', this), function () {
                tds += '<td>' + $(this).html() + '</td>';
            });

            tds += '</tr>';
            if ($('tbody', this).length > 0) {
                $('tbody', this).append(tds);
            } else {
                $(this).append(tds);
            }
        });
    });
但我希望在表中创建新行之前,从所有价格部分中获取价格,并将其相加到总计部分中的每个价格。当我创建新行时,最近创建的价格应添加到以前的总价中。
请帮我找出解决办法

那么您有一堆动态插入的输入,您想绑定到updateTotal事件处理程序

最简单的选择是简单地将事件处理程序绑定到静态包装器元素。我建议使用表单元素,但由于示例中没有表单元素,因此表体可能是另一个选项

$('table#incomeId > tbody').on('keyup', 'input', function(e){

       var total = 
            $(e.delegateTarget)
                .find('input')
            .map(function(){
                return parseFloat($(this).val()) || 0;
            })
            .get()
            .reduce(function(a,b){
                return a + b;
            });

       $('#total').text(total);


    });
$'add-new'。单击,函数{ $incomeId.eachfunction{ var tr=$'tbody>tr:last',this.clone; tr.find'input'.val; var sntd=tr.find'td:first'; var sn=parseIntsntd.text+1; sntd.textsn; $'tbody',this.appendtr; 回来 }; }; $'tableincomeId>tbody'。在'keyup'、'input'函数上{ var总计= $e.delegateTarget .查找“输入” .mapfunction{ 返回parseFloat$this.val | 0; } 收到 .还原函数a,b{ 返回a+b; }; $'total'.texttotal; }; 锡 收入名称 价格 行动 1. -选择一个- 总数:
添加新收入您的问题与标题中的多个关键点有什么关系?我想使用关键点事件从每个输入框中获取值并添加到总计部分。非常感谢先生。这正是我想要的。另外,先生,在表中添加新行后,如何增加表的序列号?如果您对此有任何想法,请与我们分享。通常我更喜欢在元素上使用数据属性或在内部存储计数器,而不是解析DOM节点。但是为了坚持你所知道的,最简单的方法是找到序列号td元素,解析整数文本,递增并设置它。我已经为你更新了上面的例子。请注意,上面的示例没有说明删除输入之类的情况,这可能会导致序列号中断谢谢您,先生。告诉我一件事,我如何以一种好的方式管理序列号和删除行。