There seems to be a bug with JQuery UI datepicker, when user manually enters a date, and hits enter, the datepicker closes but focus stays on the field and therefor calendar won't open again until the textbox loses focus and gets it again. How can I supress the enter key behavior? Or are there any other known solutions for this seemingly known bug? Thanks!
EDIT
After working on this a bit more, this is the solution I came up with:
$('#someid').bind('keydown', function(event) {
if (event.which == 13) {var e=jQuery.Event("keydown");
e.which = 9;//tab
e.keyCode = 9;
$(this).trigger(e);
return false;
}
});
The tab key works well and prevents the default behavior of the datepicker's enter key event like selecting today's date in certain cases.
The simplest approach is to instantiate the datepicker on the
<input>
like you normally would, but then get rid of the focus handler ourselves and replace it with a click handler.Try this
e.stopPropagation
prevents bubbling,e.preventDefault
prevents default behaviour and returning false does too, I think.You should have a look what works best:
keyUp
,keyDown
orkeyPress
.Solved by adding a blur() event to the onClose method of the datepicker.
I initially had problems applying your solution. I thought it worthwhile to post my larger snippet that gives a little more context.
Use
e.stopImmediatePropagation()
, and make sure the keydown binding happens before callingdatepicker()
.Credit