diff options
author | TJ VanToll <tj.vantoll@gmail.com> | 2013-11-21 09:03:08 -0500 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2015-01-29 17:47:48 -0500 |
commit | e87a5d8c0520e64cadbe5903b9ef803f526e698d (patch) | |
tree | 7e89f113c03fc3f8fc105bfca34d395410bed484 | |
parent | cc5a4bc5c88a682b862e0db1a44a9ecd40900c1c (diff) | |
download | jquery-ui-e87a5d8c0520e64cadbe5903b9ef803f526e698d.tar.gz jquery-ui-e87a5d8c0520e64cadbe5903b9ef803f526e698d.zip |
Datepicker: Add `value()` and `valueAsDate()` methods
-rw-r--r-- | tests/unit/datepicker/datepicker_methods.js | 46 | ||||
-rw-r--r-- | ui/datepicker.js | 21 |
2 files changed, 66 insertions, 1 deletions
diff --git a/tests/unit/datepicker/datepicker_methods.js b/tests/unit/datepicker/datepicker_methods.js index e204b8045..dcd6dc2c7 100644 --- a/tests/unit/datepicker/datepicker_methods.js +++ b/tests/unit/datepicker/datepicker_methods.js @@ -64,7 +64,51 @@ test( "open", function() { }); test( "value", function() { - expect( 0 ); + expect( 5 ); + var input = $( "#datepicker" ).datepicker(), + picker = input.datepicker( "widget" ), + inline = $( "#inline" ).datepicker(); + + input.datepicker( "value", "1/1/2014" ); + equal( input.val(), "1/1/2014", "input's value set" ); + ok( picker.find( "a[data-timestamp]:first" ).hasClass( "ui-state-focus" ), + "first day marked as selected" ); + equal( input.datepicker( "value" ), "1/1/2014", "getter" ); + + inline.datepicker( "value", "1/1/2014" ); + ok( inline.find( "a[data-timestamp]:first" ).hasClass( "ui-state-focus" ), + "first day marked as selected" ); + equal( inline.datepicker( "value" ), "1/1/2014", "getter" ); + + // TODO: Handle for invalid values. + + input.datepicker( "destroy" ); + inline.datepicker( "destroy" ); +}); + +test( "valueAsDate", function() { + expect( 5 ); + var input = $( "#datepicker" ).datepicker(), + picker = input.datepicker( "widget" ), + inline = $( "#inline" ).datepicker(); + + input.datepicker( "valueAsDate", new Date( 2014, 0, 1 ) ); + equal( input.val(), "1/1/2014", "input's value set" ); + ok( picker.find( "a[data-timestamp]:first" ).hasClass( "ui-state-focus" ), + "first day marked as selected" ); + TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), + new Date( 2014, 0, 1 ), "getter" ); + + inline.datepicker( "valueAsDate", new Date( 2014, 0, 1 ) ); + ok( inline.find( "a[data-timestamp]:first" ).hasClass( "ui-state-focus" ), + "first day marked as selected" ); + TestHelpers.datepicker.equalsDate( inline.datepicker( "valueAsDate" ), + new Date( 2014, 0, 1 ), "getter" ); + + // TODO: Handle for invalid values. + + input.datepicker( "destroy" ); + inline.datepicker( "destroy" ); }); })( jQuery ); diff --git a/ui/datepicker.js b/ui/datepicker.js index 9d8813a29..425e81a72 100644 --- a/ui/datepicker.js +++ b/ui/datepicker.js @@ -609,6 +609,27 @@ $.widget( "ui.datepicker", { date: this.date.format() }); }, + _value: function( value ) { + this.date.setTime( value ).select(); + if ( !this.inline ) { + this.element.val( this.date.format() ); + } + this.refresh(); + }, + value: function( value ) { + if ( arguments.length ) { + this._value( value ); + } else { + return this.date.format(); + } + }, + valueAsDate: function( value ) { + if ( arguments.length ) { + this._value( value ); + } else { + return this.date.date(); + } + }, _destroy: function() { if ( this.inline ) { this.picker.empty(); |