I have an AJAX-y type page. When the user clicks "GO" I need to execute a specific javascript function. I also want to simulate the "GO" click when a user hits "Enter" or "Return. Please note that I do not want to "submit" the page. The reason why is because i am doing everything via JavaScript.
To handle the "Enter" / "Return" key press in IE and FireFox, I am using the following code:
$(document).ready(function () {
$('#root').keypress(function(e) {
if (e.keyCode == '13') {
goButton();
}
});
});
Unfortunately, this code is not working in Chrome. The goButton() function gets called. The problem though is the page gets submitted. What am I doing wrong?
According to users, if your keyboard isn't working in Chrome, you might be able to fix the problem simply by resetting it to default. Sometimes your Chrome profile can get corrupted, or an extension can interfere with it. To fix the problem, reset Chrome to the default and check if that helps.
Goes to the previous page in your browsing history for the tab. Press Backspace , or Alt and the left arrow together.
Assuming you have a form:
$('#theForm').submit(function(e){
e.preventDefault();
goButton();
return false; // just to be sure.
});
You need to prevent the submit event from the form, which gets called when the form has focus and a user presses enter.
I agree with BGerrissen, that is the best approach. However, to better adapt to your code you can just add the stops to your current function:
$(document).ready(function () {
$('#root').keypress(function(e) {
if (e.keyCode == '13') {
e.preventDefault();//Stops the default action for the key pressed
goButton();
return false;//extra caution, may not be necessary
}
});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With