r3494 committed - Datepicker: Corrected automatic parsing of date on keystrokes

r3494 committed - Datepicker: Corrected automatic parsing of date on keystrokes

Revision: 3494
Author: kbwood.au@gmail.com
Date: Mon Dec 14 20:00:17 2009
Log: Datepicker: Corrected automatic parsing of date on keystrokes
http://code.google.com/p/jquery-ui/source/detail?r=3494
Modified:
/trunk/ui/jquery.ui.datepicker.js
=======================================
--- /trunk/ui/jquery.ui.datepicker.js    Mon Dec 14 19:42:40 2009
+++ /trunk/ui/jquery.ui.datepicker.js    Mon Dec 14 20:00:17 2009
@@ -552,19 +552,21 @@
    /* Synchronise manual entry and field/alternate field. */
    _doKeyUp: function(event) {
        var inst = $.datepicker._getInst(event.target);
-        try {
-            var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
-                (inst.input ? inst.input.val() : null),
-                $.datepicker._getFormatConfig(inst));
-            if (date) { // only if valid
-                $.datepicker._setDateFromField(inst);
-                $.datepicker._updateAlternate(inst);
-                $.datepicker._updateDatepicker(inst);
+        if (inst.input.val() != inst.lastVal) {
+            try {
+                var date =
$.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
+                    (inst.input ? inst.input.val() : null),
+                    $.datepicker._getFormatConfig(inst));
+                if (date) { // only if valid
+                    $.datepicker._setDateFromField(inst);
+                    $.datepicker._updateAlternate(inst);
+                    $.datepicker._updateDatepicker(inst);
+                }
+            }
+            catch (event) {
+                $.datepicker.log(event);
            }
        }
-        catch (event) {
-            $.datepicker.log(event);
-        }
        return true;
    },
@@ -1202,7 +1204,8 @@
    /* Parse existing date and initialise date picker. */
    _setDateFromField: function(inst) {
        var dateFormat = this._get(inst, 'dateFormat');
-        var dates = inst.input ? inst.input.val() : null;
+        inst.lastVal = inst.input ? inst.input.val() : null;
+        var dates = inst.lastVal;
        var date, defaultDate;
        date = defaultDate = this._getDefaultDate(inst);
        var settings = this._getFormatConfig(inst);
--