Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Сбор данных со страницы


Автор: serpico 25.10.2010, 18:21
Хочу наладить сбор c селектов на странице, наваял следующий код
Код

function getselects()
{
    var ret;
    try
    {
        var selects = document.getElementsByTagName("select");
        for (var i = 0; i < selects.length; i++)
        {
            for (var j = 0; j < selects[i].options.length; j++)
            {
                if (selects[i].options[j].selected)
                {
                    ret += "select[" + i + "]." + selects[i].getAttribute('name') + "[" + j + "]: " + selects[i].options[j].value + "\r\n";
                }
            }
        }
    }
    catch (_ex)
    {
    }
    return ret;
}
alert(getselects());


но почему то не работает как надо.

Автор: Amphiluke 25.10.2010, 18:49
Цитата(serpico @  25.10.2010,  22:21 Найти цитируемый пост)
но почему то не работает как надо.

Как надо? Проверяю — всё работает. smile 
Уточните еще, в какой момент времени (сразу после загрузки страницы или по какому-то событию) вы вызываете функцию getselects.

Автор: Amphiluke 25.10.2010, 19:14
P.S. Переменую ret при объявлении лучше сразу инициализировать.
Код

var ret = "";


И вообще, можно обойтись без вложенных циклов. smile 
Код

function getselects() {
    var ret = "";
    var j = 0;
    try {
        var selects = document.getElementsByTagName("select");
        for (var i = 0; i < selects.length; i++) {
            j = selects[i].selectedIndex;
            ret += "select[" + i + "]." + selects[i].getAttribute('name') + "[" + j + "]: " + selects[i].options[j].value + "\r\n";
        }
    } catch (_ex) {
    }
    return ret;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)