Следующие могут добавлять или удалять таблицу, используя события click. В верхней части есть таблица, которая не создана динамически, у меня есть поле ввода, называемое 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>
вы имеете в виду, что пользователь может добавить или удалить строку с помощью кнопки мыши события? Ваше описание указывает, что они добавляют совершенно новую таблицу. Есть ли причина, по которой будут использоваться несколько таблиц, а не одна таблица с несколькими строками (для ввода часов)? –
Я ценю ответ назад. Да, пользователь сможет добавить или удалить таблицу. Проект находится на ранних стадиях. Каждая таблица будет содержать 25 или около того элементов, каждый из которых управляется mysql. – stapuff