我有三个文本框,名字 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)到该按钮,并在需要回发时执行按钮单击
。还将 textbox
的 value
存储在某个隐藏字段
中,因为您不会在服务器端获取更新的 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/