2011-02-15 79 views
2

我想選擇一個由asp.net服務器控件動態創建的文本框(listview)對於表格中的每一行,我需要在其上運行一些javascript功能。jquery獲取表格中的文本框

下面我試圖選擇基於名稱具有文本的文本框。有沒有「更好」的方式來做到這一點?

 $('#tblNewAttendees tr').each(function() { 
    var test = $(this).find('input[name$="txtFirstName"]').val(); 
     }); 
    } 

HTML代碼

<table> 
    <thead> 
    </thead> 
    <tbody> 
      <tr> 
       <td> 
        <asp:TextBox ID="txtFirstName" Text='<%#Eval("FirstName")%>'  
       runat="server" Width="80px" /> 
       </td> 
      </tr> 
    </tobdy> 
</table> 
+0

所以沒有因爲除了抓住文本框更好的方法選擇,我在做什麼,或者使用一個唯一的類? – gh9 2011-02-15 14:36:59

回答

3

將一個特定的CSS類分配給所有這些文本框,然後使用類選擇器來選擇這些類。

假設您已將myClass分配爲CSS類值。然後用下面的選擇他們 -

$('#tblNewAttendees tr').each(function() 
{ 
    var test = $(this).find('input.myClass').val(); 
}); 

原因是,據我記得,您分配給一個文本框中的名稱是由ASP.NET更換新的東西,它解析文檔之後。假設您有一個名爲myBox的文本框。然後,頁面被解析後,其名稱可能會變成類似ct_1001_myBox_123或其他東西。所以最好使用CSS類在客戶端選擇它們。

3

你可以做以下簡化它(不需要做。每個(),那麼內的一個發現):

$('#tblNewAttendees tr input[name$="txtFirstName"]').each(function() { 
    var test = $(this).val(); 
} 

您可能想要改變你的標記爲asp文本框提供一個類並根據類名選擇,因爲.net會重命名ID屬性。

2

你可以給你的文本框一個唯一的類名,並使用類名作爲選擇器。

<asp:TextBox ID="txtFirstName" class="myClass" Text='<%#Eval("FirstName")%>' runat="server" /> 

然後在你的腳本只是由類

$('.myClass').each(function() { 
    var test = $(this).val(); 
     }); 
    }