onKeypress Enter Key event on textfield not working in Chrome

Posted by rlcrews on Stack Overflow See other posts from Stack Overflow or by rlcrews
Published on 2012-02-14T22:02:45Z Indexed on 2012/11/09 5:01 UTC
Read the original article Hit count: 167

Filed under:
|
|

I have a question along the same vein as the one asked here regarding how the enter key is handled in chrome.

The effect I am trying to accomplish is to allow the enter key to call a click event of one a button while focus in within the current field. To accomplish this I am using the following code:

javascript:

 <script type="text/javascript">
//attempting to capture keypress for chrome here but this is not working
        $("#txtContainer").keypress(function (e) {
            if (e.keyCode == '13') {
                e.preventDefault();
                doClick(buttonname, e);
                return false;
            }
        });

        function doClick(buttonName, e) {

            var key;
            if (window.event)
                key = window.event.keyCode;     //IE
            else
                key = e.which;     //firefox

            if (key == 13) {
                var btn = document.getElementById(buttonName);
                if (btn != null) { 
                    btn.click();
                    event.keyCode = 0
                } 
            }
        }
</script>

within the aspx

 <form id="form1" runat="server">
    <div>
    <asp:LinkButton ID="newBtn" runat="server" OnClick="btnLogin_Click" Text="ASP Link" />
    <asp:TextBox ID="txtContainer" runat="server" Width="100" />
    <asp:Label ID="time_lbl" runat="server" />
    </div>
    </form>

and within the code behind aspx.cs

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                txtContainer.Attributes.Add("onKeyPress", "doClick('" + newBtn.ClientID + "',event)");
            }

        }       

        public void btnLogin_Click(object sender, EventArgs e)
        {
            time_lbl.Text = txtContainer.Text;
        }

The above code works fine in FF and IE however chrome continues to submit the entire form vs. capturing the keypress on the enterkey.

Thank you for any suggestions.

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about jQuery