Click here to Skip to main content
13,796,494 members
Click here to Skip to main content
Add your own
alternative version


49 bookmarked
Posted 19 Jan 2007
Licenced CPOL

Capturing the Enter key to cause a button click

, 19 Jan 2007
Rate this:
Please Sign up or sign in to vote.
Have you ever wanted to trap the Enter key press event in ASP.NET and have it click a button for you? This article describes two options for capturing the Enter key press event and then clicking a button. One solution uses JavaScript, the other uses a Panel control.

Sample screenshot


Have you ever wanted to trap the Enter key press event in ASP.NET and have it click a button for you? This article describes two options for capturing the Enter key press event and then clicking a button. One solution uses JavaScript, the other uses a Panel control.


Most people like things to work a certain way. Consider a search engine text box. After you type in your search text, most people just want to push the Enter key and have the search start. It is a pain when you have to grab the mouse and move the cursor to the Search button and click it. The article describes two solutions to this problem.

The problem

Web pages have text boxes, text areas, etc., where users enter text. Often, after the text is entered, the user needs to click a button. It may be a search button, or a submit button, or some other sort of button. The problem is how to trap the Enter key press event so that the correct button can be clicked.

The solution

Let's explore two solutions to this problem. First, let us look at using JavaScript. With this solution, each textbox needs to have some JavaScript attached to the onKeyPress JavaScript event. I usually do this in the pageload method in the code-behind.

//Add the javascript so we know where we want the enter key press to go
if (!IsPostBack)
                   "doClick('" + btnSearch.ClientID + "',event)");
                  "doClick('" + btnSearch.ClientID + "',event)");
                  "doClick('" + btnSearch.ClientID + "',event)");
                  "doClick('" + btnSearch.ClientID + "',event)");
              "doClick('" + btnSearch.ClientID + "',event)");
               "doClick('" + btnSearch.ClientID + "',event)");
                 "doClick('" + btnSearch.ClientID + "',event)");

Note: You pass into the JavaScript method the button's ClientID so that the JavaScript method can find the button and call its Click method.

Next, we need a JavaScript method called doClick in the ASP.NET form.

<SCRIPT type=text/javascript>
    function doClick(buttonName,e)
        //the purpose of this function is to allow the enter key to 
        //point to the correct button to click.
        var key;

              key = window.event.keyCode;     //IE
              key = e.which;     //firefox
        if (key == 13)
            //Get the button the user wants to have clicked
            var btn = document.getElementById(buttonName);
            if (btn != null)
            { //If we find the button click it
                event.keyCode = 0

The next solution is using a Panel control. In this case, the panel is doing all the work.

<asp:Panel ID="panSearch" runat="server" 

       DefaultButton="btnSearch2" Width="100%" >
    <table width="100%">
     <td>First Name</td>
     <td ><asp:TextBox ID="txtboxFirstName2" 

           runat="server" ></asp:TextBox></td>

Notice that the Panel tag has a property called DefaultButton. You set this property to the button ID of the button you want to be clicked on an Enter key press event. So any text box inside of the Panel will direct its Enter key press to the button set in the DefaultButton property of the Panel.

Which one is better?

I suppose we could spend a lot of time arguing about which method is better. Some people like JavaScript, so that might be the better one. Others hate JavaScript and prefer writing less code, so they would choose the Panel solution. One thing I would note is that if you have several buttons and need to have different text boxes click different buttons, then you have to go with the JavaScript solution since it gives you that flexibility. I guess I will let you decide which solution best fits your needs.


Hopefully, this article demonstrates two useful techniques to capture the Enter key press event and directing it to click the correct button. Let me know which method you prefer.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Software Developer (Senior)
United States United States
I started my programmer career over 21 years ago doing COBOL and SAS on a MVS mainframe. It didn't take long for me to move into windows programming. I started my windows programming in Delphi (Pascal) with a Microsoft SQL server back end. I started working with when the beta 2 came out in 2001. After spending most of my programming life as a windows programmer I started to check out in 2004. I achieved my in April 2005. I have done a lot of MS SQL database stuff. I have a lot of experience with Window Service and Web services as well. I spent three years as a consultant programing in C#. I really enjoyed it and found the switch between and C# to be mostly syntax. In my current position I am programming in C# working on WPF and MSSql database stuff. Lately I have been using VS2015.

On a personal note I am a born again Christian, if anyone has any questions about what it means to have a right relationship with God or if you have questions about who Jesus Christ is, send me an e-mail. ben.kubicek[at]netzero[dot]com You need to replace the [at] with @ and [dot] with . for the email to work. My relationship with God gives purpose and meaning to my life.

You may also be interested in...

Comments and Discussions

QuestionISSUE WITH Internet Explorer 11 Pin
NIKS SHINE28-Jan-15 1:07
professionalNIKS SHINE28-Jan-15 1:07 
AnswerRe: ISSUE WITH Internet Explorer 11 Pin
kubben28-Jan-15 8:15
memberkubben28-Jan-15 8:15 
GeneralRe: ISSUE WITH Internet Explorer 11 Pin
NIKS SHINE28-Jan-15 20:18
professionalNIKS SHINE28-Jan-15 20:18 
GeneralRe: ISSUE WITH Internet Explorer 11 Pin
kubben29-Jan-15 5:30
memberkubben29-Jan-15 5:30 
QuestionCapturing the Enter key to cause a button click Pin
Member 1060609518-Feb-14 5:48
memberMember 1060609518-Feb-14 5:48 
QuestionCapturing the Enter key to cause a button click Pin
Member 1060609518-Feb-14 4:38
memberMember 1060609518-Feb-14 4:38 
GeneralMy vote of 5 Pin
hueikar22-Aug-13 21:06
memberhueikar22-Aug-13 21:06 
GeneralRe: My vote of 5 Pin
kubben23-Aug-13 2:49
memberkubben23-Aug-13 2:49 
GeneralMy vote of 5 Pin
ogcalyps9-May-13 5:36
memberogcalyps9-May-13 5:36 
GeneralRe: My vote of 5 Pin
kubben9-May-13 8:24
memberkubben9-May-13 8:24 
AnswerThanks Pin
Bartho Bernsmann26-Feb-13 20:32
memberBartho Bernsmann26-Feb-13 20:32 
GeneralRe: Thanks Pin
kubben27-Feb-13 2:56
memberkubben27-Feb-13 2:56 
QuestionAbout the post Pin
tahri jouti3-Jan-13 0:14
membertahri jouti3-Jan-13 0:14 
Questionhi Pin
sri4326-Dec-12 20:03
membersri4326-Dec-12 20:03 
AnswerRe: hi Pin
kubben27-Dec-12 4:57
memberkubben27-Dec-12 4:57 
GeneralRe: hi Pin
sri4327-Dec-12 18:31
membersri4327-Dec-12 18:31 
GeneralRe: hi Pin
kubben28-Dec-12 4:53
memberkubben28-Dec-12 4:53 
Ok, so how did you attach that javascript function to a textbox? I am guessing that is perhaps where your problem is. You need to add it to the onclick event of the text box that you want. You also have to make sure the button is named correctly.

Are you using visual studio? If you are, you can put

In the javascript and visual studio will cause a break point when that gets hit. This will help you debug your problem.

GeneralMy vote of 5 Pin
BBBwex24-Aug-12 8:34
memberBBBwex24-Aug-12 8:34 
GeneralMy vote of 5 Pin
OldTrain1-Jun-12 4:37
memberOldTrain1-Jun-12 4:37 
QuestionThank you.. Pin
naylinnhtun15-Dec-11 18:08
membernaylinnhtun15-Dec-11 18:08 
AnswerRe: Thank you.. Pin
kubben16-Dec-11 2:25
memberkubben16-Dec-11 2:25 
QuestionMy Vote of 5 Pin
Gandalf_TheWhite13-Nov-11 21:18
professionalGandalf_TheWhite13-Nov-11 21:18 
AnswerRe: My Vote of 5 Pin
kubben14-Nov-11 3:19
memberkubben14-Nov-11 3:19 
GeneralMy vote of 5 Pin
Paul Lannuier11-Jul-11 10:34
memberPaul Lannuier11-Jul-11 10:34 
Questionhi plz help Pin
chinnu114-Jul-11 0:54
memberchinnu114-Jul-11 0:54 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile
Web03 | 2.8.181207.3 | Last Updated 19 Jan 2007
Article Copyright 2007 by kubben
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid