'Form submission on pressing enter button

I am handling ajax suggestions using keyboard and mouse, it is capturing every keyevent except enter key(13). What I want is to get the "selected suggestion value" into the text box. For this I am handling keyevent = 13. Now the problem is when I am pressing enter key, my form get submitted instead of going into the "if block" where I am checking (keyevent = 13).

I am using struts <html:submit> tag to submit my form. I guess, the browser automatically set the focus into first <html:submit> tag that comes in its place. How to defocus this? I tried setting focus at other fields but trick doesn't work.

The other way is, I can use simple <html:button> and can get the things working, but the system already using <html:submit>. So, getting approval and modification is quite hectic.

Code for submit button:

<html:submit styleClass="btn" property="method.saveVisaRequestForRMG" onclick="bCancel=false" styleId="submitBtn">

and code for event handling:

// Handle ENTER key 
case 13: handleSelectedItem(obj, container, cur);
     ev.cancelBubble = true;
     break;

How to come out of this problem? Please suggest me.



Solution 1:[1]

If you use jquery there is a simple way to handle enter press events:

  $(window).keypress(function(e) {
    if(e.keyCode == 13) {
      e.preventDefault();
      alert('Enter!');
    }
  });

After you prevented the default event you can do whatever you want for example posting the data into the server, saying hello or whatever :)

Solution 2:[2]

Try to return false; to cancel the event handling of the submit?

Solution 3:[3]

Do you have something like:

onsubmit="return formValidator()"

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Adam Arold
Solution 2 Martin Hennings
Solution 3 Dave Albert