использовать JQuery для общего количества ячеек подряд

0

Я использую 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">

Любая помощь будет отличной

Теги:
html-table

3 ответа

0

демонстрация

$(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;
    });
});
  • 0
    спасибо за код .. Я получаю сообщение об ошибке, что объект ошибки времени выполнения JavaScript не поддерживает свойство или метод. Я использую jquery, указывающий на ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js . также указывает на jquery-ui.min.js. Может быть, я не указываю правильные файлы JQuery?
  • 0
    @ jvcoach23 Вы используете очень устаревшую версию jQuery, в которой еще нет метода on . Я думаю, что это было bind в те времена.
Показать ещё 1 комментарий
0

Я, честно говоря, не слишком хорошо знаком с 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);

Надеюсь, это поможет, по крайней мере, в качестве общей концепции.

0

http://jsfiddle.net/dKxW8/

$(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);
    });
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню