2015-02-09 24 views
0

我有一個asp.net網頁,其中包含許多文本框。 如果這些框中的任何一個通過每個字段的onchange事件運行一些javascript。 JavaScript基本上將文本框更改爲'Y',因此我知道頁面的哪一部分發生了某些變化。asp.net-javascript更好的方式使用多個字段的onchange

一切工作正常,但我只需要知道是否有方法使onchange調用更好/更短?由於我擁有超過100個文本框,每個文本框上都有大量的重複onchange='CM('3');,所以我希望有更好的方法來處理這個問題。

有三個div,每個包含大約35個文本框,所以也許有一種方法可以通過DIV來實現,我不知道。

任何指導表示讚賞。

<asp:TextBox ID="txtDC1_D" runat="server" CssClass="STD_desc160" onchange="CM('3');"></asp:TextBox> 
<asp:TextBox ID="txtDC1_C" runat="server" CssClass="STD_cur30"  onchange="CM('3');"></asp:TextBox> 
<asp:TextBox ID="txtDC1_1" runat="server" CssClass="STD_value55" onchange="CM('3');"></asp:TextBox> 
<asp:TextBox ID="txtDC1_2" runat="server" cssClass="STD_value55" onchange="CM('3');"></asp:TextBox> 
<asp:TextBox ID="txtDC1_3" runat="server" cssClass="STD_value55" onchange="CM('3');"></asp:TextBox> 
<asp:TextBox ID="txtDC1_B" runat="server" CssClass="STD_bassis" onchange="CM('3');"></asp:TextBox> 
<br /> 
<asp:TextBox ID="txtDC2_D" runat="server" CssClass="STD_desc160" onchange="CM('2');"></asp:TextBox> 
<asp:TextBox ID="txtDC2_C" runat="server" CssClass="STD_cur30"  onchange="CM('2');"></asp:TextBox> 
<asp:TextBox ID="txtDC2_1" runat="server" CssClass="STD_value55" onchange="CM('2');" ></asp:TextBox> 
<asp:TextBox ID="txtDC2_2" runat="server" cssClass="STD_value55" onchange="CM('2');" ></asp:TextBox> 
<asp:TextBox ID="txtDC2_3" runat="server" cssClass="STD_value55" onchange="CM('2');" ></asp:TextBox> 
<asp:TextBox ID="txtDC2_B" runat="server" CssClass="STD_bassis" onchange="CM('2');"></asp:TextBox> 
<br /> 
+0

是jQuery也是一個選項? – 2015-02-09 11:24:20

+0

現在我不想使用jQuery,但如果沒有其他選擇,我會。 – user1135218 2015-02-09 11:59:51

回答

0

如果jQuery是也是一種選擇(我強烈推薦),所以:

$(function(){ 

    $("input[type=text]").on('change',function(){ 
    if ($(this).val()) $(this).val('Y'); else $(this).val(''); 
    }) 
}); 

如果沒有,我會刪除這個答案。

+0

我很欣賞你的答案,但我將如何擺脫許多onchange =「CM('2');我在aspx頁面的每個文本框上調用? – user1135218 2015-02-09 11:40:19

相關問題