0

リピーターコントロールがあり、各セルにテキスト、入札ボタン、入札金額のテキストボックスがあります。ユーザーが同じセルのボタンをクリックしたときにテキストボックスの値(入札額)を取得しようとしているので、入札額を検証できます。どんな助けでも大歓迎です。

これが私の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を取得できますが、その特定のセルのテキストボックス値のみを取得する必要があります。

ありがとうございました

4

1 に答える 1

0

ボタンをクリックするためのjavascript関数では、DOMツリーをトラバースして入力を見つけることができます。ボタンはセル内のdiv内にあるため、ボタンの(div)の親(セル)を取得する必要があります。次に、最初の(スパン)とそのスパンの子を見つけます。

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

または、セルの検索機能を使用して入力を探すことができます。

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

または、最も近い関数を使用しますが、パフォーマンスに大きな違いがあるかどうかはわかりません。また、セルを見つけるためにどこまで調べる必要があるかを知るための構造はすでにわかっています。

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

この回答は、テーブルへの入力のみがあることを前提としています。複数ある場合は.bids、の要素タイプではなく、のクラスを探す必要がありinputます。

于 2012-08-12T17:34:02.650 に答える