javascript是将onchange用于多个字段的更好方法

javascript better way to use onchange with multiple fields

本文关键字:字段 更好 方法 是将 onchange 用于 javascript      更新时间:2023-09-26

我有一个asp.net网页,其中包含许多文本框。如果这些框中有任何一个,我会通过每个字段的onchange事件运行一些javascript。javascript基本上将文本框更改为"Y",这样我就知道页面的哪个部分发生了更改。

一切都很好,但我只需要知道是否有办法让onchange调用更好/更短?由于我有超过100个文本框,每个文本框上都有很多重复的onchange='CM('3');,所以我希望有更好的方法来处理它。

有三个DIV,每个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 />

如果jQuery也是一个选项(我强烈建议),那么:

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

如果没有,我会删除这个答案。