当用户按下文本框中的某个键时运行代码

时间:2015-08-19 20:16:44

标签: javascript jquery asp.net vb.net

我有一个ASP.net文本框,用户需要输入电子邮件。我需要检测用户何时键入分号(;)然后取消隐藏文本框并将焦点设置为该文本框。

2 个答案:

答案 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