我有asp.net登录控件,示例
<asp:Login ID="Login" onauthenticate="LoginAuthenticateEvent" runat="server"/>
具有 *.cs 功能,例如
protected void LoginAuthenticateEvent(object sender, AuthenticateEventArgs e)
{
//..
}
但只有在按下登录按钮时才会启动身份验证,而不是通过文本框中的“Enter”来启动。
所以我决定将此事件设置为 javascript 'onkeypress' 事件,并希望它检查键码是否为 13(Enter) - 并启动 LoginAuthenticateEvent。 但有一个问题 - 从 JS 函数调用 C# 函数应该是静态的,但在我的例子中它是“protected void”
在 JS(jQuery) 代码中,我得到了这样的必要元素:
var tboxUserName = $("input[name*='UserName']");
我明白应该有类似的东西
tboxUserName.attr("onkeypress","....");
但是如何挂起 key 检查并使其成为 onauthenticate="LoginAuthenticateEvent"之类的?
更新:尝试在服务器端查找控件,并在那里添加 TextChanged 事件
TextBox tb = (TextBox)Login.FindControl("UserName");
tb.TextChanged += tbox_TextChanged;
但是“TextChanged”事件仅在焦点更改时触发(当单击其他文本框或按钮时) - 但我需要检查每个按键。所以问题仍然存在。
最佳答案
是的,@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>
关于javascript - 登录控制,通过按键设置onauthenticate ="LoginAuthenticateEvent",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28497672/