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 では、取得しようとしている値が this/cells/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">

どんな助けでも素晴らしいでしょう

4

3 に答える 3

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) そして最後に、次のように、取得した結果で cell-8 を更新します。

$('.cell-8').val($total);

少なくとも一般的な概念として、それが役立つことを願っています。

于 2013-10-03T20:04:34.207 に答える
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's value (in last row) to the sum
        $("#mytable tr").eq(count - 1).find("input").val(sum);
    });
});
于 2013-10-03T20:13:50.063 に答える