Все зависит от верстки, если справа от контролов достаточно места для самого длинного value в option, то все будет отлично. Но тут я согласен, решение не универсальное. Можно попробовать динамически изменять «position» на событии mouseover и возвращать в исходное состояние после того как фокус потерян.
Тогда смысл оставлять место справа под контрол, чтобы он потом туда расширился?
Если бы у меня было место, я бы сразу сделал пошире селект и не парился с вашими скриптами.
Не скажите, смотрите на скриншот в статье, там у всех контролов (textbox, textarea, select) фиксированная ширина, один длинный select будет выбиваться из общей картины, тогда пришлось бы делать широкими все контролы.
Попробуйте копировать селект, хитро прятать часть копии, чтоб были видны только открытые options, но видны были полностью. А так расширенный селект может поломать верстку.
Спасибо, можно будет поиграться на досуге. Но, самое идеально решение, я думаю будет вместо обычного select использовать что-нибудь кастомное, например select на div'ах, но так как изначально везде на проекте использовался обычный селект, и как часто это происходит, нужен был срочный fix, получилось такое решение. Начало есть, можно развивать :)
Да, теперь все ок. Единственное, что надо пару секунд подержать наведенный курсор мыши, чтобы увидеть полный текст. Можно попробовать отлавливать события клика или выделения и показывать полный текст в отдельном baloon. Однако ваш вариант самый быстрый, если не надо видеть полный текст всех значений одновременно.
В свою очередь существует еще отличная библиотека DHTML eXtensions, которая также умеет решать подобную проблему.
Может кто-то не знал о её существовании и возмет на заметку.
Побеждаем обрезанный текст в HTML select