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
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