我有asp.net登录控件,例如
<asp:Login ID="Login" onauthenticate="LoginAuthenticateEvent" runat="server"/>
具有* .cs功能,如
protected void LoginAuthenticateEvent(object sender, AuthenticateEventArgs e)
{
//..
}
但是只有按下登录按钮才能启动身份验证,而不是按“输入”按钮。在文本框中。
所以我决定将此活动设置为javascript&#39; onkeypress&#39;事件,并希望它检查键码是否为13(回车) - 并启动LoginAuthenticateEvent。 但是有问题 - 从JS函数调用C#函数应该是静态的,但在我的情况下它是&#39; protected void&#39;
在JS(jQuery)代码中,我得到了这样的必要元素:
var tboxUserName = $("input[name*='UserName']");
我明白应该有类似
的东西tboxUserName.attr("onkeypress","....");
但如何在那里挂钥匙检查并使其成为onauthenticate =&#34; LoginAuthenticateEvent&#34;?
upd。:尝试在服务器端查找控件,并在那里添加TextChanged事件
TextBox tb = (TextBox)Login.FindControl("UserName");
tb.TextChanged += tbox_TextChanged;
但是&#39; TextChanged&#39;事件仅在焦点更改时触发(单击其他文本框或按钮时) - 但我需要检查每个按键。所以问题仍然存在。
答案 0 :(得分:0)
是的,来自@Dave Becker的解决方案正在发挥作用。在我的情况下,我的登录控件是品牌,没有Button,但ImageButton。在这里,代码如下所示:
<asp:Panel ID="panelLogin" runat="server" DefaultButton="Login$LoginImageButton">
<asp:Login ID="Login" onauthenticate="LoginAuthenticateEvent" runat="server">
</asp:Login>
</asp:Panel>