在asp.net内容页中KeyPress事件不起作用

本文关键字:KeyPress 事件 不起作用 asp net | 更新日期: 2023-09-27 17:50:32

以下是我的代码。谁能告诉我如何处理在asp.net内容页按键事件

<script type="text/javascript">
$(function () {
    $('#txtdesc').keypress(function (e) {
        var txt = $(this).val();
        if (txt.length > 5) {
            e.preventDefault();
        }
    });
});

<asp:TextBox ID="txtdesc" TextMode="MultiLine" runat="server" ></asp:TextBox>

在asp.net内容页中KeyPress事件不起作用

$(function () {
    $('#<%=txtdesc.ClientID %>').on("keypress", function (e) {
        var txt = $(this).val();
        if (txt.length > 5) {
            alert('Hai');    
            e.preventDefault();
        }
    });
});

使用ClienID作为文本框控件,因为它是服务器控件。

Asp.net更改页面生成时的HTML响应。(对于web控件)像这样:

<input type="hidden" name="ctl00$txtdesc" id="**ctxxx_txtdesc**" />

所以,你应该使用由asp.net生成的id属性值或类属性。这样的:

$('#ctl00$txtdesc').on("keypress", (function (e) {
   ...
});
<asp:TextBox ID="txtdesc" TextMode="MultiLine" CssClass="**txtdesc**" runat="server" ></asp:TextBox>
$('.txtdesc').on("keypress", (function (e) {
       ...
    });