我有一个ASP.net文本框,用户需要输入电子邮件。我需要检测用户何时键入分号(;)然后取消隐藏文本框并将焦点设置为该文本框。
答案 0 :(得分:2)
免责声明:这可能看起来有点" hacky"而且我确信有更好的方法可以做到这一点。
您可以使用文本框的onkeypress
,将其设置为JavaScript函数。在JavaScript函数中,以编程方式"取消隐藏"并将焦点放在客户端的其他文本框中。无需回复。
JavaScript的:
function checkForSemicolons(event) {
var txtEmail = document.getElementById("<%= txtEmail.ClientID %>");
if (event.keyCode === 59) {
// unhide other textbox and give focus to it
}
}
ASPX:
<asp:TextBox ID="txtEmail" onkeypress="checkForSemicolons(event)" runat="server" />
答案 1 :(得分:0)
OnKeypress事件是从客户端触发的,因此您需要从客户端脚本中捕获它。
您可以使用javascript来引发回发,而不是将参数发送到服务器端,但通常您可以从客户端处理所有内容。 在jquery上你会有这样的东西:
$("TextboxID").keypress(function(e){
//do something
//If you want to cause a postback use " __doPostBack('EventTaarget','Parameters');"
//you can capture the key that was pressed on e.keycode (for keycodes list, check: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes)
})
在后面的代码中,您可以添加一些代码来在page_load上捕获此事件。
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Me.Request("__EVENTTARGET") Is Nothing Then
'do something - you can use the Parameter with: Me.Request("__EVENTARGUMENT")
end if
end sub