File tree Expand file tree Collapse file tree 1 file changed +18
-7
lines changed Expand file tree Collapse file tree 1 file changed +18
-7
lines changed Original file line number Diff line number Diff line change 179
179
this . _on ( $ . extend ( {
180
180
keydown : function ( event ) {
181
181
var keyCode = $ . ui . keyCode ,
182
- suggestList ;
182
+ suggestList ,
183
+ hasSuggestedItems ,
184
+ hasSelectedItems ,
185
+ selectedItem ;
183
186
switch ( event . keyCode ) {
184
187
case keyCode . PAGE_UP :
185
188
case keyCode . UP :
189
192
}
190
193
191
194
suggestList = event . currentTarget . parentNode . getElementsByTagName ( 'ul' ) [ 0 ] ;
192
- if ( suggestList ) {
193
- $ ( suggestList . getElementsByClassName ( '_active' ) [ 0 ] ) . removeClass ( '_active' ) . prev ( ) . addClass ( '_active' ) ; ;
195
+ hasSuggestedItems = event . currentTarget . parentNode . getElementsByTagName ( 'ul' ) [ 0 ] . children . length >= 0 ;
196
+ if ( hasSuggestedItems ) {
197
+ selectedItem = $ ( suggestList . getElementsByClassName ( '_active' ) [ 0 ] ) . removeClass ( '_active' ) . prev ( ) . addClass ( '_active' ) ;
198
+ event . currentTarget . value = selectedItem . find ( "a" ) . text ( ) ;
194
199
}
200
+
195
201
break ;
196
202
case keyCode . PAGE_DOWN :
197
203
case keyCode . DOWN :
201
207
}
202
208
203
209
suggestList = event . currentTarget . parentNode . getElementsByTagName ( 'ul' ) [ 0 ] ;
204
- if ( suggestList ) {
205
- if ( suggestList . getElementsByClassName ( '_active' ) . length === 0 ) {
206
- $ ( suggestList . children [ 0 ] ) . addClass ( '_active' ) ;
210
+ hasSuggestedItems = event . currentTarget . parentNode . getElementsByTagName ( 'ul' ) [ 0 ] . children . length >= 0 ;
211
+ if ( hasSuggestedItems ) {
212
+ hasSelectedItems = suggestList . getElementsByClassName ( '_active' ) . length === 0 ;
213
+ if ( hasSelectedItems ) {
214
+ selectedItem = $ ( suggestList . children [ 0 ] ) . addClass ( '_active' ) ;
215
+ event . currentTarget . value = selectedItem . find ( "a" ) . text ( ) ;
207
216
} else {
208
- $ ( suggestList . getElementsByClassName ( '_active' ) [ 0 ] ) . removeClass ( '_active' ) . next ( ) . addClass ( '_active' ) ;
217
+ selectedItem = $ ( suggestList . getElementsByClassName ( '_active' ) [ 0 ] ) . removeClass ( '_active' ) . next ( ) . addClass ( '_active' ) ;
218
+ event . currentTarget . value = selectedItem . find ( "a" ) . text ( ) ;
209
219
}
210
220
}
211
221
218
228
break ;
219
229
case keyCode . ENTER :
220
230
case keyCode . NUMPAD_ENTER :
231
+
221
232
if ( this . isDropdownShown ( ) && this . _focused ) {
222
233
this . _proxyEvents ( event ) ;
223
234
event . preventDefault ( ) ;
You can’t perform that action at this time.
0 commit comments