jquery - 在 jquery 代码中更改文本框值时,不会触发 asp.net 文本框更改事件

标签 jquery asp.net

我有三个文本框,名字 txtFirstName、姓氏 txtLastName 和 AD 用户 ID txtADUserID。每当名字或姓氏发生更改时,我都会在 Jquery 代码中分配 AD 用户 id 值。我在浏览器中看到 ADUserID 文本框值已更改。

问题:我需要检查 txtADUserID 的 ontextchanged 服务器端事件中是否已存在用户 ID。 OnTextChanged 事件根本不会被触发,也不会引发回发。

ASP.net 代码

<asp:TextBox ID="txtADUserID" runat="server" MaxLength="255" ClientIDMode="Static" OnTextChanged="txtADUserID_TextChanged" AutoPostBack="true"></asp:TextBox>

Jquery 代码:

 $(document).ready(function () {
        $("#txtFirstName").on('change', function () {
           $('#txtADUserID').val($('#txtFirstName').val().charAt(0) + $('#txtLastName').val());
        });
        $("#txtLastName").on('change', function () {
           $('#txtADUserID').val($('#txtFirstName').val().charAt(0) + $('#txtLastName').val());
        });
    });

代码背后的代码:

    protected void txtADUserID_TextChanged(object sender, EventArgs e)
            {
// Raise an error if user already exist
         }

最佳答案

您正在通过 JavaScript 更改文本,而无需用户交互,这就是您没有获得服务器端回发的原因。您可以添加一个按钮并将服务器端事件绑定(bind)到该按钮,并在需要回发时执行按钮单击。还将 textboxvalue 存储在某个隐藏字段中,因为您不会在服务器端获取更新的 textbox 值.

$(document).ready(function () {
      $("#txtFirstName").on('change', function () {
           $('#txtADUserID').val($('#txtFirstName').val().charAt(0) + $('#txtLastName').val());
           $('#buttonId').click();  
      });
      $("#txtLastName").on('change', function () {
           $('#txtADUserID').val($('#txtFirstName').val().charAt(0) + $('#txtLastName').val());
           $('#buttonId').click();
      });
});

关于jquery - 在 jquery 代码中更改文本框值时,不会触发 asp.net 文本框更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20208982/

相关文章:

c# - 使用继承自 IdentityDbContext 的上下文对 Entity Framework 6 进行单元测试

c# - 将 OnClick 事件添加到 ASP.NET 控件

c# - RegularExpressionAttribute 行为中的正则表达式

javascript - 如何从 ASP :NET? 将数组传递给 jQuery

javascript - 从 JSON 对象读取数据时获取 Undefined

javascript - 脚本发送一个对象而不是数字

jquery - JS fiddle : Making div occupy 100% height

c# - 当从 javascript 调用时,UpdatePanel 中的 asp.net 按钮会导致 Firefox 15.0.1 中的整个页面刷新

javascript - 仅自动检测移动浏览器(通过用户代理?)而不是平板电脑

javascript - 在 keyup 上用 ' ' 替换空格 '-'