TimeTextBox: picker can occlude text box

Description

Sometimes the TimeTextBox? picker can completely occlude the textbox, which has a huge impact on usability. To reproduce, resize the browser window such that it is approximately the same size as the picker, and then center the textbox in the window vertically. (it might take you a few goes).

I can't use this control unless I find a solution for this, because the behaviour is COMPLETELY unacceptable.

Greg.

Oldest firstNewest firstThreaded

Show commentsShow property changes

Change History (5)

This could also happen with DateTextBox etc. The difference is that the drop down for TimeTextBox can be quite tall. ComboBox has code in _showResultList() to adjust the drop down size to the available amount of space (by adding a scrollbar), but that's going to be difficult for TimeTextBox since we'd end up with both a scroll bar and the scrolling arrow buttons. Probably we should just address this as part of #7631.

(In [22580]) Various [stop gap] fixes to TimeTextBox, although still wondering about full rewrite as per #7631, or replacing custom scrolling with native scrollbar like ComboBox has. Fixes include:

limit drop down to 10 entries so that (in the majority of cases) it won't overlap the <input> box (fixes #8387)

same as ComboBox, make typing automatically open the dropdown, and once the user has started typing or backspacing the dropdown list is filtered by what's in the <input> (fixes #11486)

fix recently introduced problem (with _HasDropDown conversion of _DateTimeTextBox, refs #6416) where drop down becomes detached from <input> when it appears above the input and then user types text to further filter the values shown

add more tests for TimeTextBox; they previous tests were very sparse; tests include check of current filtering sort order (refs #11485)

Refactor TimePicker to be a traditional drop down list with a scrollbar, like ComboBox. Fixes #7631, #14719 !strict, and refs #8387, #16730 tangentially. Note that the visibleRange option is no longer supported, as it no longer makes sense. If specified, it will be ignored.