JQuery каскадный выпадающий проблема - PullRequest
0 голосов
/ 25 марта 2011

Я использую jquery для вызова второго и третьего выпадающего меню на основе выбора первого и второго меню.

Метод, который я принял, состоит в том, чтобы все последующие выпадающие списки имели вид style = "display: none" и использовать функцию .toggle (), чтобы показать их при выборе в предыдущем выпадающем списке.

Когда элемент выбран, в конце добавляется цифра для сохранения уникального идентификатора.

Вот jsfiddle: http://jsfiddle.net/36E6m/3/

Как видите, html неполный, но его достаточно для проверки, если вы выбрали «Mortice» в первом и «Deadlock» во втором.

До сих пор у меня было первое меню, работающее для всех элементов (ну, два, которые имеют действительный HTML), но даже оно перестало работать.

Теперь только первый выбор в первом меню (Mortice) вызовет другое меню.

Любая помощь в том, что я делаю неправильно или как я могу это сделать лучше, будет с благодарностью получена.

Большое спасибо,

Ник.

1 Ответ

4 голосов
/ 25 марта 2011

Вместо использования .click() посмотрите на использование .change().

$('#type_1').change(function() {
    var o = $(this).find(":selected");
    $('#' + o.attr("id") + '2').toggle();
});

Также id должен быть уникальным для каждого элемента в домене. (ваши два выпадающих списка под типом 2 имеют одинаковый идентификатор) Ваш селектор для выпадающих списков должен выглядеть примерно так:

$("select[name='type_2']").change(function() {
    var o = $(this).find(":selected");
    $('#' + o.attr("id") + '2').toggle();
});

Вот слегка переработанный пример для jsfiddle .

...