File tree Expand file tree Collapse file tree 6 files changed +82
-1
lines changed Expand file tree Collapse file tree 6 files changed +82
-1
lines changed Original file line number Diff line number Diff line change @@ -35,6 +35,7 @@ common.testWidget( "calendar", {
35
35
value : null ,
36
36
37
37
// callbacks
38
+ change : null ,
38
39
create : null ,
39
40
select : null
40
41
}
Original file line number Diff line number Diff line change @@ -10,6 +10,42 @@ module( "calendar: events", {
10
10
}
11
11
} ) ;
12
12
13
+ test ( "change" , function ( ) {
14
+ expect ( 6 ) ;
15
+
16
+ var shouldFire , eventType ;
17
+
18
+ this . element . calendar ( {
19
+ change : function ( event ) {
20
+ ok ( shouldFire , "change event fired" ) ;
21
+ equal (
22
+ event . type ,
23
+ "calendarchange" ,
24
+ "change event"
25
+ ) ;
26
+ equal (
27
+ event . originalEvent . type ,
28
+ eventType ,
29
+ "change originalEvent on calendar button " + eventType
30
+ ) ;
31
+ }
32
+ } ) ;
33
+
34
+ shouldFire = true ;
35
+ eventType = "mousedown" ;
36
+ this . element . find ( "tbody button" ) . last ( ) . simulate ( eventType ) ;
37
+
38
+ shouldFire = true ;
39
+ eventType = "keydown" ;
40
+ testHelper . focusGrid ( this . element )
41
+ . simulate ( eventType , { keyCode : $ . ui . keyCode . HOME } )
42
+ . simulate ( eventType , { keyCode : $ . ui . keyCode . ENTER } ) ;
43
+
44
+ shouldFire = false ;
45
+ eventType = "mousedown" ;
46
+ this . element . find ( "tbody button" ) . first ( ) . simulate ( eventType ) ;
47
+ } ) ;
48
+
13
49
asyncTest ( "select" , function ( ) {
14
50
expect ( 6 ) ;
15
51
Original file line number Diff line number Diff line change @@ -42,6 +42,7 @@ common.testWidget( "datepicker", {
42
42
43
43
// callbacks
44
44
beforeOpen : null ,
45
+ change : null ,
45
46
close : null ,
46
47
create : null ,
47
48
open : null ,
Original file line number Diff line number Diff line change @@ -42,6 +42,35 @@ test( "beforeOpen", function() {
42
42
. datepicker ( "open" ) ;
43
43
} ) ;
44
44
45
+ test ( "change" , function ( ) {
46
+ expect ( 4 ) ;
47
+
48
+ var shouldFire ;
49
+
50
+ this . element . datepicker ( {
51
+ change : function ( event ) {
52
+ ok ( shouldFire , "change event fired" ) ;
53
+ equal (
54
+ event . type ,
55
+ "datepickerchange" ,
56
+ "change event"
57
+ ) ;
58
+ }
59
+ } ) ;
60
+
61
+ shouldFire = true ;
62
+ this . element . datepicker ( "open" ) ;
63
+ this . widget . find ( "tbody button" ) . eq ( 1 ) . simulate ( "mousedown" ) ;
64
+
65
+ shouldFire = false ;
66
+ this . element . datepicker ( "open" ) ;
67
+ this . widget . find ( "tbody button" ) . eq ( 1 ) . simulate ( "mousedown" ) ;
68
+
69
+ shouldFire = true ;
70
+ this . element . datepicker ( "open" ) ;
71
+ this . widget . find ( "tbody button" ) . eq ( 2 ) . simulate ( "mousedown" ) ;
72
+ } ) ;
73
+
45
74
test ( "close" , function ( ) {
46
75
expect ( 4 ) ;
47
76
@@ -71,7 +100,7 @@ test( "close", function() {
71
100
shouldFire = false ;
72
101
this . element . datepicker ( "open" ) ;
73
102
shouldFire = true ;
74
- this . element . datepicker ( " widget" ) . find ( "tbody tr:first button:first" ) . simulate ( "mousedown" ) ;
103
+ this . widget . find ( "tbody tr:first button:first" ) . simulate ( "mousedown" ) ;
75
104
} ) ;
76
105
77
106
test ( "open" , function ( ) {
Original file line number Diff line number Diff line change @@ -72,6 +72,7 @@ return $.widget( "ui.calendar", {
72
72
value : null ,
73
73
74
74
// callbacks
75
+ change : null ,
75
76
select : null
76
77
} ,
77
78
@@ -125,6 +126,8 @@ return $.widget( "ui.calendar", {
125
126
} ,
126
127
127
128
_select : function ( event ) {
129
+ var oldValue = this . options . value ? this . options . value . getTime ( ) : "" ;
130
+
128
131
this . _setOption ( "value" , new Date ( $ ( event . currentTarget ) . data ( "timestamp" ) ) ) ;
129
132
this . _updateDayElement ( "ui-state-active" ) ;
130
133
@@ -133,6 +136,10 @@ return $.widget( "ui.calendar", {
133
136
this . activeDescendant . closest ( this . grid ) . focus ( ) ;
134
137
event . preventDefault ( ) ;
135
138
}
139
+
140
+ if ( oldValue !== this . options . value . getTime ( ) ) {
141
+ this . _trigger ( "change" , event ) ;
142
+ }
136
143
} ,
137
144
138
145
_handleKeydown : function ( event ) {
Original file line number Diff line number Diff line change @@ -51,6 +51,7 @@ var widget = $.widget( "ui.datepicker", {
51
51
52
52
// callbacks
53
53
beforeOpen : null ,
54
+ change : null ,
54
55
close : null ,
55
56
open : null ,
56
57
select : null
@@ -104,6 +105,9 @@ var widget = $.widget( "ui.datepicker", {
104
105
this . calendarInstance = this . calendar
105
106
. calendar ( $ . extend ( { } , this . options , {
106
107
value : this . _parse ( this . element . val ( ) ) ,
108
+ change : function ( event ) {
109
+ that . _trigger ( "change" , event ) ;
110
+ } ,
107
111
select : function ( event ) {
108
112
that . element . val ( that . calendarInstance . value ( ) ) ;
109
113
that . close ( ) ;
@@ -172,6 +176,9 @@ var widget = $.widget( "ui.datepicker", {
172
176
} ,
173
177
blur : function ( ) {
174
178
this . suppressExpandOnFocus = false ;
179
+ } ,
180
+ change : function ( event ) {
181
+ this . _trigger ( "change" , event ) ;
175
182
}
176
183
} ,
177
184
You can’t perform that action at this time.
0 commit comments