JavaScript, DHTML, jQuery: как реализовать «двустороннюю» связь основных деталей в 3 раскрывающихся списках html (флажки выбора) - PullRequest
0 голосов
/ 09 мая 2009

У нас есть требование, из-за которого я уже некоторое время просматриваю сеть. Вот проблемный сценарий. У нас есть веб-страница, и эта страница содержит три раскрывающихся списка, как показано на рисунке ниже (Пустые поля - но фактические бизнес-данные также находятся в тех же строках)

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

Если кто-то предварительно выбрал «Honda» в первом раскрывающемся списке и щелкает раскрывающийся список «Milage» - раскрывающийся список «Milage» должен:
а. очистить предыдущие опции (если есть)
б. Заполните параметры динамически для всех значений, действительных для «Honda» (согласно БД)
с. показать раскрывающийся список с новыми параметрами.

Кроме того, поток должен работать независимо от порядка выбора выпадающих списков.

Вот где у меня возникают проблемы - если я пишу обработчик OnClick для раскрывающегося списка и использую вызов AJAX для получения значений - раскрывающиеся значения заполняются, но в IE - раскрывающийся список снова сворачивается. Кроме того, в Firefox параметры заполняются нормально, но выпадающий список слишком оживлен (понятно, так как я удаляю все параметры и добавляю новые).

Кроме того, было бы замечательно, если бы все функции фильтрации могли быть обработаны в браузере (поскольку вызовы AJAX занимают некоторое время)

Here is the image if you can't see it in the original post above - 
http://www.imagechicken.com/uploads/1241831231099054800.jpg

С уважением,
- Ашиш

Ответы [ 2 ]

1 голос
/ 09 мая 2009

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

$('#drop1').change(function(){
    $('#drop2').load(url, {option: $('#drop1').val()})
})
0 голосов
/ 09 мая 2009

Решение для опроса или решение для обмена, описанное @Nadia, вероятно, будет для вас лучшим выбором.

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