Jquery +从gridview中的另一个文本框更新一个文本框

时间:2010-02-25 06:48:20

标签: jquery gridview textbox onkeypress

考虑一个包含两列的gridview行...每列有两个文本框...在第一个文本框中的Onkeypress我必须更新第二个文本框中的值.....是否可以使用jquery ....

修改 Grid http://img85.imageshack.us/img85/4044/gridp.jpg

我想展示Closing Advance based on Advance Detucted textbox keypress

ClosingAdvance=OpeningADvance-AdvanceDetucted ...

<table class="grid-view" id="ctl00_ContentPlaceHolder1_gridEmployee" style="border: 0px none rgb(244, 242, 242); border-collapse: collapse;" border="0" cellspacing="0" rules="all">
        <tbody><tr class="gridHeaderimg">
            <th scope="col" style="width: 10%;">

                      Name
                    </th><th scope="col" style="width: 10%;">
                    Salary Basis
                    </th><th scope="col" style="width: 12%;">
                      Salary Per Day
                    </th><th scope="col" style="width: 12%;">
                     No of Days Present
                    </th><th scope="col" style="width: 12%;">
                     Opening Advance
                    </th><th scope="col" style="width: 12%;">
                     Advance Detucted
                    </th><th scope="col" style="width: 12%;">

                     Closing Advance
                    </th><th scope="col" style="width: 10%;">
                     Salary Given
                    </th>
        </tr><tr class="normal">
            <td class="GridCs" style="width: 10%;" align="left">
                      <span id="ctl00_ContentPlaceHolder1_gridEmployee_ctl02_LblEmpName">Natarajan</span>
                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl02$HiddenId" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl02_HiddenId" value="16" type="hidden">
                    </td><td class="GridCs" style="width: 10%;" align="left">

                   <span id="ctl00_ContentPlaceHolder1_gridEmployee_ctl02_LblSalary">Weekly</span>
                  </td><td class="GridCs" style="width: 12%;" align="left">
                      <span id="ctl00_ContentPlaceHolder1_gridEmployee_ctl02_LblSalaryPerDay">150.00</span>

                  </td><td style="width: 12%;" align="center">
                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl02$TxtDaysPresent" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl02_TxtDaysPresent" class="text_box_height_14_width_50" type="text">

                  </td><td class="GridCs" style="width: 12%;" align="left">
                      <span id="ctl00_ContentPlaceHolder1_gridEmployee_ctl02_LblOpeningAdv">500.00</span>

                  </td><td style="width: 12%;" align="center">
                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl02$TxtAdvanceDeducted" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$gridEmployee$ctl02$TxtAdvanceDeducted\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl02_TxtAdvanceDeducted" class="text_box_height_14_width_50" type="text">

                  </td><td style="width: 12%;" align="center">
                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl02$TxtClosingAdvance" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl02_TxtClosingAdvance" class="text_box_height_14_width_50" type="text">
                  </td><td style="width: 10%;" align="center">
                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl02$TxtSalary" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl02_TxtSalary" class="text_box_height_14_width_50" type="text">

                  </td>
        </tr><tr class="alternate">
            <td class="GridCs" style="width: 10%;" align="left">

                      <span id="ctl00_ContentPlaceHolder1_gridEmployee_ctl03_LblEmpName">Pandian</span>
                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl03$HiddenId" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl03_HiddenId" value="17" type="hidden">
                    </td><td class="GridCs" style="width: 10%;" align="left">
                   <span id="ctl00_ContentPlaceHolder1_gridEmployee_ctl03_LblSalary">Weekly</span>
                  </td><td class="GridCs" style="width: 12%;" align="left">
                      <span id="ctl00_ContentPlaceHolder1_gridEmployee_ctl03_LblSalaryPerDay">122.00</span>

                  </td><td style="width: 12%;" align="center">

                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl03$TxtDaysPresent" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl03_TxtDaysPresent" class="text_box_height_14_width_50" type="text">

                  </td><td class="GridCs" style="width: 12%;" align="left">
                      <span id="ctl00_ContentPlaceHolder1_gridEmployee_ctl03_LblOpeningAdv">0.00</span>
                  </td><td style="width: 12%;" align="center">
                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl03$TxtAdvanceDeducted" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$gridEmployee$ctl03$TxtAdvanceDeducted\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl03_TxtAdvanceDeducted" class="text_box_height_14_width_50" type="text">

                  </td><td style="width: 12%;" align="center">
                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl03$TxtClosingAdvance" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl03_TxtClosingAdvance" class="text_box_height_14_width_50" type="text">
                  </td><td style="width: 10%;" align="center">

                      <input name="ctl00$ContentPlaceHolder1$gridEmployee$ctl03$TxtSalary" id="ctl00_ContentPlaceHolder1_gridEmployee_ctl03_TxtSalary" class="text_box_height_14_width_50" type="text">

                  </td>
        </tr>
    </tbody></table>

2 个答案:

答案 0 :(得分:1)

你仍然没有提供任何标记,所以我必须做出一些假设。假设1:“Advance Deducted”输入字段具有“adv-ded”类。假设2:td包含一个开头推进,有一个“adv-open”类。假设3:“结束提前”输入具有“adv-close”类。

$('input.adv-ded').live('keypress', function(e) {
    var val;
    try {
        val = parseFloat($(this).val());
        if (val) {
            var tr = $(this).closest('tr');
            var open = parseFloat(tr.find('td.adv-open').text());
            tr.find('input.adv-close').val(open - val);
        }
    } catch (e) {

    }
});

像这样的东西。您可能必须为格式添加一些代码,但这应该传达一般的想法。

答案 1 :(得分:0)

我尝试使用Javascript并得到答案,

function totalAmount(e, obj) {

    var tbl = document.getElementById('ctl00_ContentPlaceHolder1_gridEmployee');
    var tblRows = tbl.rows.length;
    var result = 0;
    var str1;
    if (obj != null) {
        str1 = obj.id;
    } else {
        str1 = this.id;
    }
    var Splitstr = str1.split('_');
    var lastChar = Splitstr[3].substring(3, Splitstr.length);
    if (str1 == 'ctl00_ContentPlaceHolder1_gridEmployee_ctl' + lastChar + '_TxtAdvanceDeducted') {
        var str2 = 'ctl00_ContentPlaceHolder1_gridEmployee_ctl' + lastChar + '_txtOpeningAdv';
        var str3 = 'ctl00_ContentPlaceHolder1_gridEmployee_ctl' + lastChar + '_TxtClosingAdvance';
        var txtDeduct = document.getElementById(str1).value;
        var txtOpenAdv = document.getElementById(str2).value;
        var txtCloAdv = document.getElementById(str3).value;
        var totRes = txtOpenAdv - txtDeduct;
        document.getElementById(str3).value = totRes.toFixed(2)
    }

}