Question

I have a website with 2 forms. One for search and another for the login. When I use the enter key to submit, the search is always called because it is the first form on the page.

What I want to do is program the enter key to click a certain button when a certain textbox has focus.

I'm using asp:textbox and asp:button for my login form.

Was it helpful?

Solution

Create a global variable which tracks what form is in focus:

<script> var currentForm = document.forms[0];</script>
<form ...><input onfocus="currentForm = this.form;"/></form>
<form ...><input onfocus="currentForm = this.form;"/></form>

Attach a keyboard handler to the window, look for the Enter key, then when it's hit submit the form that's being focused:

 function globalKeyPressed(event) {
   if (event.keyCode == ENTER) { // This is pseudo-code, check how to really do it
     currentForm.submit();
   }
 }

OTHER TIPS

If you are using asp.net webforms, then you can make use of the Panel control. The Panel control has a DefaultButton property which you set to the ID of an asp.net button control. When any control within that panel gains focus, the default button will be the referenced button.

This worked perfectly:

$('form[name=yourformname]').submit(function(){...});

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top