Monday, October 11, 2004

Setting the default button that should submit the form when enter key is pressed

How can we set the default button that should submit the form and raise its Click event on the server when the enter key is pressed on the form
.NET Classes used : System.Web.UI.Control
It is usual for a web form to have more than one button control. How can you set the default button that should submit the form and raise its Click event on the server when the enter key is pressed on the form?
The textbox and the other input controls don't have a property that allow you to specify such a default button.
The answer is in a simple client-side javascript function called whenever a button is pressed, that, if the button pressed is the Enter key, cancels the default submit and simulates a click on the wanted button. Here's the function, that you can copy and paste as-is into your ASPX pages, or that you can paste into a separate .js file, referenced by any ASPX page that needs it:

< language="javascript">
function KeyDownHandler(btn)
{
// process only the Enter key
if (event.keyCode == 13)
{
// cancel the default submit
event.returnValue=false;
event.cancel = true;
// submit the form by programmatically clicking the specified button
btn.click();
}
}
< /script>

Now, in the input controls declaration you just have to call this function when a button is pressed, by handling the onKeyPressed client-side event, and pass a reference to the default button:


< runat="server" id="FN" onkeydown= "KeyDownHandler(DefButton)">


No comments: