|
|
|
| Нашел сдесь http://xhtml.ru/2006/02/11/dynamic-select/
двойной динамически выподающий Селект.
помогите переделать его в тройной (попробывал собственными силами - не получается) :(
function dynamicSelect(id1, id2, id3) {
// Сперва необходимо проверить поддержку W3C DOM в браузере
if (document.getElementById && document.getElementsByTagName) {
// Определение переменных, ссылающихся на списки
var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);
var sel3 = document.getElementById(id3);
// Клонирование динамического списка
var clone = sel2.cloneNode(true);
var clone = sel3.cloneNode(true);
// Определение переменных для клонированных элементов списка
var clonedOptions = clone.getElementsByTagName("option");
// Вызов функции собирающей вызываемый список
refreshDynamicSelectOptions(sel1, sel2, sel3, clonedOptions);
// При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список
sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, sel3, clonedOptions);
}
}
}
// Функция для сборки динамического списка
function refreshDynamicSelectOptions(sel1, sel2, sel3, clonedOptions) {
// Удаление всех элементов динамического списка
while (sel2.options.length) {
sel2.remove(0);
}
var pattern1 = /( |^)(select)( |$)/;
var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
var pattern3 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
// Перебор клонированных элементов списка
for (var i = 0; i < clonedOptions.length; i++) {
// Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка
if (clonedOptions[i].className.match(pattern1) ||
clonedOptions[i].className.match(pattern2) ||
clonedOptions[i].className.match(pattern3)) {
// его нужно клонировать в динамически создаваемый список
sel2.appendChild(clonedOptions[i].cloneNode(true));
sel3.appendChild(clonedOptions[i].cloneNode(true));
}
}
}
// Вызов скрипта при загрузке страницы
window.onload = function() {
dynamicSelect( "Country", "Region", "goroda" ) ;
}
|
| |
|
|
|
|
|
|
|
для: Dinya_1
(01.04.2009 в 18:37)
| | dynamicSelect(id1, id2)
dynamicSelect(id2, id3)
Так не пробовали | |
|
|
|