Как раскрыть <select> <option>
Какое событие раскрывает <select>?
|
|
Спасибо за ссылку, но я так и не понял. Как javascript-ом развернуть select? Это вообще можно сделать?
|
Вот здесь обсуждается подобная тема, возможно она поможет Вам разобраться:http://javascript.ru/forum/events/33...a-onclick.html
|
блин помогите решить задачу)))
|
|
Вот еще одна подобная тема:http://javascript.ru/forum/events/65...ta-select.html
чтобы навсегда разобраться с этим вопросом я приведу ниже код (работает ie,ff): <html> <head></head> <body onload="document.getElementById('someID').size = 3"> <select id="someID" name="name"> <option value="value1">option1</option> <option value="value2">option2</option> <option value="value3">option3</option> </select> </body> </html> а далее еще более извращенный, но похоже интересующий многих(работает в ff и требует небольших пояснений): <html> <head> <script type="text/javascript"> function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null); var cb = document.getElementById("someID"); var canceled = !cb.dispatchEvent(evt); } </script> <title></title> </head> <body onload="setTimeout('simulateClick()', 2000);"> <select id="someID" name="name" onclick="this.size=3"> <option value="v1">option1</option> <option value="v2">option2</option> <option value="v3">option3</option> </select> </body> </html> после загрузки по таймауту выполняется функция simulateClick() - ф-я взята почти без изменений с MDC, которая симулирует клик мышкой по <select id="someID", на котором в свою очередь стоит изменение this.size по onclick. Вы можете убрать onclick="this.size=3" из select и посмотреть что произойдет! Но самое главное, оба кода совершенно бесполезны т.к. неизвестно иx применение, как уже неоднократно говорилось на этом форуме, что подтверждают приведенные мной ссылки. К тому же первый код намного проще, но на практике также бесполезен. За правильность и точность того, что происходит в вышеописанном коде я не ручаюсь, но это не меняет сути. |
[offtopic]
эта запись должна отсылать к другой записи;) [/offtopic] |
|
Спасибо за примеры. Однако size=3 и щелчок мыши по select приводят к разным результатам. Неужели нельзя развернуть select как при щелчке? Я не могу в это поверить :(
|
A_V,
Ответьте мне на вопрос: зачем Вам это нужно? дурацкие ответы: 1. чтобы было 2. типо круто 3. я создаю мультфильм в браузере не принимаются. Я хочу, чтобы Вы четко сформулировали зачем Вам это нужно. Цитата:
ps: скучно |
Мне это не нужно. Мне интересно можно или нельзя это сделать. А Вам не интересно? Я ни где не нашел ответа что этого сделать нельзя. Зато полно ответов "зачем вам это нужно?".
|
onclick="this.size=3" //это onclick="alert('The Truth is Out There')" //меняете на это исходя из этого: https://developer.mozilla.org/en/DOM/select https://developer.mozilla.org/en/DOM/element http://www.w3.org/TR/DOM-Level-2-HTM...ml#ID-94282980 http://www.w3.org/TR/1999/REC-html40...ml#edef-SELECT а еще вот здесь: http://www.w3.org/TR/1999/REC-html40...l#adef-onclick написано вот это: Цитата:
<html> <head> <script type="text/javascript"> function simulateClick() { var e = document.getElementById('someID'); e.focus(); //здесь все работает, а e.click(); //вот здесь вызывает ошибку } </script> <title></title> </head> <body onload="setTimeout('simulateClick()', 2000);"> <select id="someID" name="name"> <option value="v1">option1</option> <option value="v2">option2</option> <option value="v3">option3</option> </select> </body> </html> Цитата:
|
Цитата:
|
Господа, почему вы вдруг однозначно решили, что это никому не нужно? Посмотрите на поведение поисковиков (Google, Yandex): они автоматически разворачивают аналоги тэга <select>, заполненные в зависимости от вводимых первых букв запроса. Задача очень схожа. Однако, раз даже Google прибег к применению собственной динамической панели взамен использования стандартного <select>, то это наводит на мысли...
|
Цитата:
|
Цитата:
|
Цитата:
<input type="text"> и <input type="text" autocomplete="off">? |
Я не сравниваю <select> и <input>. Я всего лишь скромно обращаю внимание, что для определенных задач может понадобиться интерфейс, каким угодно образом реализующий автоматически открывающийся список. Ведь я изначально ввязался в эту дискуссию потому, что было заявлено:
Цитата:
|
А.Б.,
вы сравниваете контролы, у которых есть два важных отличия: в один можно вводить текст, в другой -- нельзя, у одного можно вручную список открыть, у другого -- нельзя. Фактически, вы сравниваете два контрола, у которых только одна общая деталь: что-то выпадает снизу. Вам не кажется странным такое сравнение? |
Цитата:
|
Цитата:
Да, формально я не прав, объединяя в рассуждении <div> и <select>, однако это может помочь автору темы: забей на <select> и делай <div>, как названные Google и Yandex. В общем-то, я другими словами повторяю свое первое сообщение в теме. |
Цитата:
|
Вот накинулись на ТС, а ведь он дело спрашивает. Например если программировать интерфейс с учетом, что у пользователя нет мыши и ему приходится обходить элементы ввода только клавиатурой. Такое программное раскрытие списка было бы неплохо:) . Хотя можно исхитриться - временно size списка увеличить на фокус, а потом уменьшить. Но все равно эффект не тот.
P.S. Просто надо понимать, что многие возможности интерфейса , которые в других средах программирования - детская забава в стандартном web интерфейсе - далекая мечта. И самый полезный предмет после книги по JS - это губозакатательная машинка.:) |
Цитата:
Цитата:
|
Цитата:
js гибкий и мощный язык, но это не значит что он обязан варить всем кашу и делать другую работу по дому. |
Цитата:
А по теме: приведенная цитата и реализация выпадающих списков таким образом нааамного гибче в представлении того же дерева с картинками там и т.п. авто подгрузка ветки дерева и т.п. а выглядит как и select |
Цитата:
Очень легко в JS спрограммировать поле ввода по какой-нибудь необычной маске или используя AJAX банальный grid отображения и ввода данных в базу? Кода и времени уйдет не мало, если вообще получится. И так почти со всем. В основном думаешь не что сделать, а как это сделать. |
интересно, а что бы сказал человек, начинавший с web-программирования, перейдя на создание десктопных приложений :-?
|
micscr,
html+css предоставляют такую гибкость в создании интерфейсов, которая десктопным программам и не снилась. |
Цитата:
|
micscr,
возьмём Delphi, к примеру. Не устраивает тебя стандартная TabPanel, хочется другой вид табиков. За какое время ты напишешь новый компонент с табиками, бриджем и поэтессами? |
Цитата:
А в JS факт тот, что многие вещи просто в принципе не заложены. Достаточно посмотреть на большинство сайтов - чуть что по серьезнее, по красивее - уже Flash. На JS просто люди не рискуют браться - знают все проблемы. |
Цитата:
|
Ну самое простое - когда я ввожу в инпут данные мне нужно знать на какой позиции сейчас находится курсор. Как получить информацию например в keypress?
|
так я торможу :blink:
По какой клавише в браузерах обнулить выбор в списке, т.е. selectedIndex = -1 сделать ? |
ну как, прошло достаточно времени, может что появилось, можно к примеру навести мышку на список и он автоматически раскрылся, такое возможно? может есть плагин jquery?
|
Simon
Смысл темы отсутствует. Лично я не вижу смысла от селекта что бы он сам открывался. Вообще вы можете обосновать где это понадобится? У пользователя нету мышки? Где тут проблема? Нормальные люди для этого придумали фокус. Нужно при наведении раскрыть меню зачем лезть не понятно куда если это просто HTML+CSS. Только ради того что бы сказать " Когда вы создаете скрипты вы, наоборот думаете о том, как бы сделать так, что бы он меньше весил или я тут такой один? |
я могу ответить, бывают случаи когда имеется множественный выбор при переходе, к примеру страна-регион-город-район, все они ввиде ссылок, допустим выбираем первый, ссылка превращается в список, при выборе страны появляется список регионов, вот нужно чтобы список уже был раскрыт, иначе приходится лишний раз кликать по списку.
В качестве примера есть такая страничка http://irr.ru/addAdvert/step2/?category=cars/repayment/ тут имеется выбор страны, региона, города.. но тут список не раскрывается к сожалению, если бы бы раскрывался, было оч.удобно. представьте себе, пользователь выбрал из списка страну, следом погрузился другой список регионов, пользователю придётся лишний раз кликать по списку регионам чтобы его раскрыть, а вот если бы он автоматически раскрывался, пользователю не пришлось лишний раз кликать по списку регионам. А ведь если подгрузился список регионов, пользователю однозначно придётся выбирать регион, если система предусматривает трёхуровневую структуру(страна-регион-город) для последующего выбора города. И это не для того что бы сказать "Я охуенен", а просто время не стоит на месте, пользователи требуют удобства. |
Цитата:
p.s. http://2010.404fest.ru/video/item-23/ |
Часовой пояс GMT +3, время: 01:26. |