Можно ли заполнить выпадающий список SELECT при нажатии на него? - PullRequest
1 голос
/ 23 октября 2009

Я бы хотел, чтобы на моей странице было несколько выпадающих списков SELECT, которые изначально могут быть пустыми. Когда пользователь нажимает на одну из них, я хочу, чтобы на сервер был сделан вызов AJAX, чтобы получить требуемый список для выбранного выпадающего списка. Затем результаты этого вызова AJAX помещаются в раскрывающийся список, а затем раскрывающийся список работает как обычно.

Можно ли отложить отображение раскрывающегося списка до завершения вызова AJAX? В настоящее время я привязал событие к событию Focus каждого выпадающего списка SELECT, и это почти работает, за исключением того, что пользователю сначала отображается пустой список. Когда они щелкают, список заполняется результатами и с тех пор работает правильно.

В идеале, я бы хотел, чтобы он нажимал на него "загрузка ...", а затем заменял его результатами, чтобы пользователю не приходилось кликать, а затем снова. Не уверен, что это возможно, хотя.

Я не против перейти к раскрывающемуся списку jQuery, в отличие от стандартного HTML SELECT, чтобы это работало.

Ответы [ 3 ]

2 голосов
/ 23 октября 2009

Можно ли отложить отображение раскрывающегося списка до завершения вызова AJAX?

Нет. Вы не получаете контроль над внутренним поведением выбора. Большинство браузеров не позволяют программно запускать открытый клик.

Подумайте об использовании искусственного выбора, сделанного из div.

0 голосов
/ 23 октября 2009

Вы также можете обмануть: onclick, замените опции на вариант, который просто говорит «Загрузка ...» и пусть он отображается нормально. Затем, когда у вас есть правильные данные, вы помещаете их в выбор и заставляете их отображать выпадающий список, снова вызывая событие щелчка при необходимости.

Имеет ли это смысл?

0 голосов
/ 23 октября 2009

Я думаю, что у вас есть 2 варианта - 1 - убедитесь, что вы запускаете событие после завершения вызова AJAX, или запускаете код, который будет вызывать событие после завершения вызова AJAX, или 2 - устанавливаете setTimeout в событии и оцените время, необходимое для совершения звонка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...