我正在使用 jquery-repeater 库在表中创建动态输入。每行将根据 keyup 事件计算平均值:
=============================
Col A | Col B | Col C | AVG |
=============================
1 | 2 | 3 | 2 |
2 | 3 | 4 | 3 |
...
Col A、B、C 是输入字段。用户可以根据需要添加多行,每行将显示最后一列的平均值(AVG)。
这是我的代码(使用 JQuery-repeater 查看):
$("input[type=number]", "#table").keyup(function() {
var $parent = $(this).parents('tr');
var allInputs = $("input[type=number]", $parent);
var total = 0;
$.each(allInputs, function() {
total += $(this).val() === '' ? +0 : +$(this).val();
});
$(".avg", $parent).val(total / 3);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table" class="table repeater" border="1">
<thead>
<tr>
<th>
<center>A - B</center>
</th>
<th>
<center>A - C</center>
</th>
<th>
<center>B - C</center>
</th>
<th>
<center>AVG</center>
</th>
<th>
<center>
<button data-repeater-create id="add_data">
Add Data
</button>
</center>
</th>
</tr>
</thead>
<tbody data-repeater-list="data">
<tr data-repeater-item>
<td><input type="number" name="val1"></td>
<td><input type="number" name="val2"></td>
<td><input type="number" name="val3"></td>
<td><input name="avg" class="avg" readonly></td>
<td>
<center>
<button data-repeater-delete>Delete</button>
</center>
</td>
</tr>
</tbody>
</table>
我希望该功能可以在每一行中工作,但实际上该功能只能工作一次。