以下可以使用点击事件添加或删除表格。在顶部有一个不是动态创建的表,我有一个名为 name="total_hrs" 的输入字段,我想总计输入每个输入 name="hours' + i + '" 的所有小时数
当前函数 hrsUpdate 只给了我最后输入的值。如果删除表,如何修改该函数以总计所有小时输入并减少值?
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
var i = 1;
function addrow() {
$('#mytable').before('<table><tr><td><input id="fname' + i + '" name="fname' + i + '" type="text" value=""></input></td><td><input id="lname' + i + '" name="lname' + i + '" type="text" value=""></input></td><td><input id="email' + i + '" name="email' + i + '" type="text" value=""></input></td><td><input id="hours' + i + '" name="hours' + i + '" type="text" value="" onchange="hrsUpdate(this.value)"></input></td><td><a class="remove" id="' + i + '" href="#">Remove</a></td></tr></table>');
i++;
}
$(document).on('click', '.remove', function () {
$(this).parents('table').remove();
});
function hrsUpdate(hrs) {
var hours = hrs;
alert(hours);
document.getElementById('total_hrs').value = (hours);
}
</script>
<body>
<table>
<tr>
<td>
<input type="text" value=""></input>
</td>
<td>
<input type="text" value=""></input>
</td>
<td>
<input type="text" value=""></input>
</td>
<td>
<input id="total_hrs" name="total_hrs" type="text" value=""></input>
</td>
</tr>
</table>
<table id="mytable"></table>
<a href="#" onclick="addrow()"><img src="http://www.clker.com/cliparts/2/f/6/1/11949856271997454136tasto_2_architetto_franc_01.svg.med.png" height="36" width="36" /></a>
</body>
编辑:
<script>
var i = 1;
function addrow() {
$('#mytable').before('<table><tr><td><input id="fname' + i + '" name="fname' + i + '" type="text" value=""></input></td><td><input id="lname' + i + '" name="lname' + i + '" type="text" value=""></input></td><td><input id="email' + i + '" name="email' + i + '" type="text" value=""></input></td><td><input class = "hours" id="hours' + i + '" name="hours' + i + '" type="text" value="" onchange="hrsUpdate()"></input></td><td><a class="remove" id="' + i + '" href="#">Remove</a></td></tr></table>');
i++;
}
$(document).on('click', '.remove', function () {
$(this).parents('table').remove();
hrsUpdate();
});
function hrsUpdate() {
var total_hours = 0;
$('.hours').each(function(i, elem) {
total_hours += parseFloat($(elem).val());
});
document.getElementById('total_hrs').value = (total_hours);
}
</script>