Dynamicselect - работа с динамическими списками

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем itwork, 22 июл 2009.

Статус темы:
Закрыта.
  1. itwork

    itwork Гость

    Всем привет,
    Есть 2 функции для работы с динамическими списками

    Код (Text):
    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[i].className.match(pattern1) || clonedOptions[i].className.match(pattern2)) {
    sel2.appendChild(clonedOptions[i].cloneNode(true));
    }
    }
    }
    и вот так присходит вызов для формирования динам. списков, при window.onload
    Код (Text):
    dynamicSelect("Select1", "Select2");
    dynamicSelect("Select2", "Select3");

    Но ето не то-что мне надо, и вообщем рещил немного переделать одну из них

    Код (Text):
    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[i]["1"];
    id2 = din_spiski[i]["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 вот так
    Код (Text):
    dynamicSelect()
    Вся проблемма в том, что мой вариант почему то не срабатывает, и не понимаю почему!
     
  2. nws

    nws Гость

    Он не заходит в иф
    document.getElementById() -> document.getElementById(id1)
     
  3. itwork

    itwork Гость

    нипонял, что исправить тогда Ж)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей