2011-07-20 12 views
0

私は1行にいくつかの入力と1つの編集ボタンがあるテーブルを持っています。ユーザーが編集ボタンをクリックすると、この行に入力値が表示され、別の操作を実行する必要があります。 私はこのコードを使用しますが、動作しません。 asp.netのListViewコントロールすることにより、このjquery表の行に同様のIDを持つセレクタを見つける方法

<table id="Table2"> 
     <thead> 
      <tr> 
       <th> 
        Name 
       </th> 
       <th> 
        Family 
       </th> 
       <th> 
       </th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr class="itemRow"> 
       <td> 
        <asp:TextBox Width="70px" ID="txtName" runat="server"></asp:TextBox> 
       </td> 
       <td> 
        <asp:TextBox Width="70px" ID="txtFamily" runat="server"></asp:TextBox> 
       </td> 
       <td> 
        <img id="editRowButton" src="../Images/Edit.gif" /> 
       </td> 
      </tr> 
        </tbody> 
    </table 

> itemRowリピートなどの

$("#editRowButton").click(function() { 
    var currentTablerow = $(this).parent().parent(); 
    var txtNameValue = $(currentTablerow).find('input[id*="txtName"]').val(); 
}); 

私のテーブル構造が 問題は、私は別のソリューションで見つける置き換える方法コード

var currentTablerow = $(this).parent().parent(); 
    var txtNameValue = $(currentTablerow).find('input[id*="txtName"]').val(); 

の下で発生し

+0

のようなものに似ている必要がありますあなたが同様に –

+2

は、なぜあなたが使用していけないしてください、いくつかのHTMLを表示できることを意味しますので

$(".editRowButton").live('click', function() { // To get the closest parent element that is a table row var currentTablerow = $(this).closest('tr'); // To get all of the inputs var inputs = currentTablerow.find('input'); // use the values alert(inputs.filter('.name').val()); }); 

などは、以下のコードを記述する方がはるかに簡単になりますクラスの代わりにid? idはページ上で一意である必要があります。使用クラスを - - あなたは同じ名前を持ついくつかの要素を使用したい場合は(「inpur.txtName」)を見つける – Vasily

+0

私達にあなたのhtmlを表示することができ、あなたのコードは、任意の入力を見つけることができません –

答えて

2

まず、同じIDを持つ複数の要素を持つことはできません。第二に、また、これはあなたのHTMLが

<tr> 
    <td><input type="text" class="name" /></td> 
    <td><input type="text" class="email" /></td> 
    <td><button class="editRowButton">Edit</button></td> 
</tr> 
+0

私はクラスセレクタを使用できません。 –

+1

クラスセレクタを使用できない理由はまったくありません。 – zatatatata

+0

私はあなたのサンプルコードを使用しますが、最終行コード(警告)は未定義に戻ります。 –

0

このコードでは、その呼び出しが2つ以上の入力フィールドを返す場合はppens?あなたはそのような配列から値を得ることはできません、あなたはそれをループし、各値で何かをする必要があります。

さらに、動作しないものはありますか?多分簡潔な例を書くことができますhttp://jsfiddle.net/

+0

OKと思われる、それはundefinedを返します。 –

関連する問題