2015-07-11 21 views
1

如何通過使用for循環來訪問類似的asp控件ID? 我有以下的asp文本框。使用for循環獲取動態創建的asp控件ID(值)

<asp:TextBox ID="PFtxtname1" runat="server"></asp:TextBox> 
<asp:TextBox ID="PFtxtname2" runat="server"></asp:TextBox> 
<asp:TextBox ID="PFtxtname3" runat="server"></asp:TextBox> 
<asp:TextBox ID="PFtxtname4" runat="server"></asp:TextBox> 
<asp:TextBox ID="PFtxtname5" runat="server"></asp:TextBox> 
<asp:TextBox ID="PFtxtname6" runat="server"></asp:TextBox> 

我想通過for循環使用jQuery訪問所有這些文本框的值,我該怎麼辦?

我試圖通過下面的代碼獲取值,但它顯示錯誤。

var ar_val=[]; 
for(i=0;i<7;i++) 
{ 
    var txtv = $("#<%=PFtxtname"+i+".ClientID%>").val().trim(); 
    ar_val.push(txtv); 
} 

回答

4

您正在混合客戶端和服務器端代碼,它不會這樣工作。 jQuery中

<asp:TextBox ID="PFtxtname1" runat="server" CssClass="txtName"></asp:TextBox> 

和重複的元素使用類選擇:

添加黎民CSS類文本框

$(".txtName").each(function() { 

    alert($(this).val()) // for value 
    alert(this.id) // for id 

}) 
+0

只是一個問題:如果jQuery代碼在標記文件中呢?混合代碼仍然不健康,但是,它應該工作。 –

+0

是的,我們可以在標記文件內寫腳本標記jquery代碼,更好的方法是使用單獨的js文件,並且我正在討論使用cquery裏面的jQuery的OP/javascript –

+0

分離代碼當然更好,但如果腳本在標記內,如果我沒有弄錯,那麼你可以在那裏使用C#代碼。至少你可以用PHP來做到這一點。我不記得在C#中它是如何的,因爲我很久沒有使用該語言,但沒有這種可能性沒有意義。 –

0

你應該試試這個,我認爲它的做工精細

var ar_val=[]; 
    $("form").find("[id$='PFtxtname']").each(function() { 

      var txtv = $(this).val().trim(); 
    ar_val.push(txtv);  
       });