function dynamicSelect(id1, id2) {
if (document.getElementById && document.getElementsByTagName) {
var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);
var clone = sel2.cloneNode(true);
var clonedOptions = clone.getElementsByTagName("option");
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
}
}
}
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
while (sel2.options.length) {
sel2.remove(0);
}
var pattern1 = /( |^)(select)( |$)/;
var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
for (var i = 0; i < clonedOptions.length; i++) {
if (clonedOptions.className.match(pattern1) || clonedOptions.className.match(pattern2)) {
sel2.appendChild(clonedOptions.cloneNode(true));
}
}
}
Работа с динамическими списками (<option>)
Есть 2 функции для работы с динамическими списками
Код:
и вот так присходит вызов для формирования динам. списков, при window.onload
Код:
dynamicSelect("Select1", "Select2");
dynamicSelect("Select2", "Select3");
dynamicSelect("Select2", "Select3");
Но ето не то-что мне надо, и вообщем рещил немного переделать одну из них
Код:
function dynamicSelect() { //id1, id2
var din_spiski = new Array();
din_spiski[0] = new Array();
din_spiski[0]["1"] = "Select1";
din_spiski[0]["2"] = "Select2";
din_spiski[1] = new Array();
din_spiski[1]["1"] = "Select2";
din_spiski[1]["2"] = "Select3";
for (var i = 0; i < din_spiski.length; i++) {
id1 = din_spiski["1"];
id2 = din_spiski["2"];
if (document.getElementById && document.getElementsByTagName) {
var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);
var clone = sel2.cloneNode(true);
var clonedOptions = clone.getElementsByTagName("option");
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
}
}
}
}
var din_spiski = new Array();
din_spiski[0] = new Array();
din_spiski[0]["1"] = "Select1";
din_spiski[0]["2"] = "Select2";
din_spiski[1] = new Array();
din_spiski[1]["1"] = "Select2";
din_spiski[1]["2"] = "Select3";
for (var i = 0; i < din_spiski.length; i++) {
id1 = din_spiski["1"];
id2 = din_spiski["2"];
if (document.getElementById && document.getElementsByTagName) {
var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);
var clone = sel2.cloneNode(true);
var clonedOptions = clone.getElementsByTagName("option");
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
}
}
}
}
все это для того чтобы можно было выздать при window.onload вот так
Код:
dynamicSelect()
Вся проблемма в том, что мой вариант почему то не срабатывает, и не понимаю почему!
Если на странице нет трех элементов с id = Select1, Select2 и Select3, то ни чего удивительно в том, что не пашет, нет.
Цитата: alekciy
А FireBug-ом религия не позволяет посмотреть?
Если на странице нет трех элементов с id = Select1, Select2 и Select3, то ни чего удивительно в том, что не пашет, нет.
Если на странице нет трех элементов с id = Select1, Select2 и Select3, то ни чего удивительно в том, что не пашет, нет.
Все на странице есть! Если б было так все просто ...
Все просто. Смотри что FireBug говорит.
Цитата: itwork
Вся проблемма в том, что мой вариант почему то не срабатывает, и не понимаю почему!
Код:
[COLOR="#ff0000"]var [/COLOR]id1 = din_spiski["1"];
[COLOR="#ff0000"]var [/COLOR]id2 = din_spiski["2"];
[COLOR="#ff0000"]var [/COLOR]id2 = din_spiski["2"];
Цитата: Nixus
Код:
[COLOR="#ff0000"]var [/COLOR]id1 = din_spiski["1"];
[COLOR="#ff0000"]var [/COLOR]id2 = din_spiski["2"];
[COLOR="#ff0000"]var [/COLOR]id2 = din_spiski["2"];
Странно, все равно не работает!
Цитата: itwork
Странно, все равно не работает!
Больше я синтаксических ошибок не вижу. Тестируйте отладчиком.