Datepicker preko tastature

by BRANIS

HTML

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.23/themes/base/jquery-ui.css">
<!DOCTYPE HTML>
<html>
  <head>
  </head>
  <body>
    <input type="text" id="myDate" />
  </body>
</html>

JavaScript

$(document).ready(function () {
  $("#myDate").datepicker().keydown(function (e) {
    //   TAB: 9
    //  LEFT: 37
    //    UP: 38
    // RIGHT: 39
    //  DOWN: 40
    //             IE        OTHER
    var code = e.keyCode || e.which;
    // If key is not TAB
    if (code != '9') {
      // And arrow keys used "for performance on other keys"
      if (code == '37' || code == '38' || code == '39' || code == '40') {
        // Get current date
        var parts = $(this).val().split("/");
        var currentDate = new Date(parts[2], parts[0] - 1, parts[1]);
        // Show next/previous day/week 
        switch (code) {
            // LEFT, -1 day
          case 37: currentDate.setDate(currentDate.getDate() - 1); break;
            // UP, -1 week
          case 38: currentDate.setDate(currentDate.getDate() - 7); break;
            // RIGHT, +1 day
          case 39: currentDate.setDate(currentDate.getDate() + 1); break;
            // DOWN, +1 week
          case 40: currentDate.setDate(currentDate.getDate() + 7); break;
        }
        // If result is ok then write it
        if (currentDate != null) { $(this).datepicker("setDate", currentDate); }
      } else { return false; } // If other keys pressed.. return false
    }
  });
});