I have a textbox which has the code;
<input type="text" maxlength="5" size="2" value="1" id="paging_textbox">
Now there is no encloding form tag on this page..
When user types in this textbox and presses Enter, the table on this page is updated (via AJAX call)
In Safari, the behavior is slightly different in the sense that even though it updates the table correctly, it kind of reloads the page (think it submits the form, but not sure how as there is no form tag) and resets the textbox value back to "1"
How do I prevent this from happening in Safari ?
Please help me. Thank you.
Just to be sure, terminate your callback function with a return false
.
That should do the trick.
function(e) {
e.preventDefault();
// some awesome code
return false;
}
Oh, and another thing: in the future, to avoid such random behavior.. respect the standards, use a form
:)
in jQuery
//Press Enter in INPUT moves cursor to next INPUT
$('#form').find(':input').keypress(function(e){
if ( e.which == 13 )
{
$(this).next().focus(); //Use whatever selector necessary to focus the 'next' input
}
});
JAVASCRIPT
<script language="JavaScript">
function disableEnterKey(e)
{
var key;
if(window.event)
key = window.event.keyCode; //IE
else
key = e.which; //firefox
if(key == 13)
return false;
else
return true;
}
</script>
and write
<input type=”text” name=”mytext” onKeyPress=”return disableEnterKey(event)”>
use event.preventDefault()
or return False should do the trick for you.