使用jquery如何在转发器控件中的按钮单击中获取表格单元格中的文本框值

时间:2012-08-12 17:22:06

标签: jquery textbox repeater cell

我有一个转发器控件,每个单元格中都有一些文本,出价按钮和一个投标金额的文本框。我试图在用户点击同一单元格中的按钮时获取文本框值(出价金额),以便我可以验证出价金额。任何帮助将不胜感激。

这是我的html表格代码:

<table id="values" class="values" border="3">
<tr>
<td  align="center"  style="white-space:nowrap">
<span class="MainBgContent_UpperRight_Title" style="height:25px;max-height:25px">Your Bid: $
<asp:TextBox ID="tbBid" CssClass="bids" Style="width: 30px" runat="server" Text=''></asp:TextBox>

</span>                                                
<div style="height:10px;clear:both;"></div>

<div class="offer" style="width:100px;height:30px;line-height:20px;">                                                    
<asp:Button style="width:100px;height:30px;line-height:20px;"  Visible="true"  CssClass="btnSubmitBid"  ID="lbBid" Text="BID" runat="Server" CommandName="makeBid"    ></asp:Button>                                                    
</div>
<div style="height:20px;clear:both;"></div>
</td>
</tr>
</table>

我可以通过类名btnSubmitBid获取按钮的id,但只需获取该特定单元格的文本框值。

谢谢

1 个答案:

答案 0 :(得分:0)

在单击按钮的javascript函数中,您可以遍历DOM树以查找输入。由于按钮位于单元格中的div中,因此需要获取按钮的parent(div)的父级(单元格)。然后找到第一个child(跨度),以及该跨度的孩子:

var bid = $(this).parent().parent().children()[0].children()[0];

或者您可以使用单元格上的find函数来查找输入:

var bid = $(this).parent().parent().find("input");

或者,使用closest函数,虽然我不确定是否存在很大的性能差异,并且您已经知道了要知道找到单元格需要多长时间的结构:

var bid = $(this).closest('td').find("input");

这个答案假定表中只有输入。如果有多个,则应查找.bids类,而不是input的元素类型。