Я использую asp.net с мастер-страницами. У меня есть список, который создает 8 строк. То, что я хотел бы использовать jQuery, - это когда кто-то вводит значение в ячейку 1-7, когда они покидают ячейку, я бы хотел вычислить ячейки 1-7 и поместить это значение в ячейку 8. Таким образом, каждая строка будет иметь расчет выполнен. Я нашел некоторый код для циклического прохождения таблицы
enter code here
$(document).ready(function () {
$('#ctl00_ContentPlaceHolder1_lvOccLine_ctrl0_tbltblOccLineList tr').each(function () {
$(this).find('td').each(function () {
})
})
});
но не добились какого-либо прогресса в прошлом. В firebug я вижу, что значение, которое я пытаюсь получить после, находится в этом /cell/1/childnodes. Похоже, это
NodeList[input#ctl00_ContentPlaceHolder1_lvOccLine_ctrl0_txtCacasian attribute value = "1"]
сделанный html выглядит так:
<input type="text" style="width:100%;" id="ctl00_ContentPlaceHolder1_lvOccLine_ctrl0_txtCacasian" value="1" name="ctl00$ContentPlaceHolder1$lvOccLine$ctrl0$txtCacasian">
Любая помощь будет отличной
$(document).ready(function () {
$('#ctl00_ContentPlaceHolder1_lvOccLine_ctrl0_tbltblOccLineList input').on('change', function () { /* bind change to input */
var sum = 0,
$this = $(this).parents('tr');
$this.find('input').each(function() { /* find all inputs in the row */
var value = parseInt(this.value);
sum += value % 1 == 0 ? value : 0; /* add values together */
});
$this.find('td').last().text(sum); /* output sum into last column */
return true;
});
});
Я, честно говоря, не слишком хорошо знаком с ASP.NET, но в общем случае jQuery вы можете легко выполнить это, просто выбрав ячейки с помощью CLASSES и обновив 8-ю ячейку?
Например, 1) поместите общий класс для ваших первых 7 ячеек, то есть "cell-to-fetch" 2) поместите уникальный класс для последней 8-й ячейки, то есть "cell-8" 3) при размытии события ячейки 7 ( blur = focusOut http://api.jquery.com/blur/) просто сделайте простую выборку и добавьте:
$(this).find('.cell-to-fetch').each(function () {
$total += $(this).val();
})
4) и, наконец, просто обновите свою ячейку-8 с результатом, который вы получите, например:
$('.cell-8').val($total);
Надеюсь, это поможет, по крайней мере, в качестве общей концепции.
$(document).ready(function () {
$("#calc").click(function () {
//first get number of rows in the table (because we have one input per row)
var count = $("#mytable tr").length;
//loop through the rows and get the sum of every input value except the last
var sum = 0;
for (var i = 0; i < (count - 1); i++) {
//get the value and add it to sum
//check if its a number
if(!isNaN(parseInt($("#mytable tr").eq(i).find("input").val(), 10))){
sum += parseInt($("#mytable tr").eq(i).find("input").val(), 10);
}
}
//assign the last input value (in last row) to the sum
$("#mytable tr").eq(count - 1).find("input").val(sum);
});
});
on
. Я думаю, что это былоbind
в те времена.