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


Автор: maxipub 24.1.2012, 18:14
хай пипл
такой вопрос, есть код:

Код

<select name="sel">
    <option value="1" selected="selected">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>


вопрос:

1. можно на JS как-то выбрать произвольный option-?
2. "сбросить" селект (т.е. чтоб был выбран дефолтный пункт - selected="selected")?

заранее благодарю ;)

Автор: $дмитрий 24.1.2012, 19:05
Если на Jquery, смотри http://www.webnotes.com.ua/index.php/archives/699
Без применения библиотек
Код

document.getElementById('god').options[1].selected=true;

Автор: Amphiluke 24.1.2012, 19:16
Цитата(maxipub @  24.1.2012,  22:14 Найти цитируемый пост)
1. можно на JS как-то выбрать произвольный option-?

Установкой свойства selectedIndex.


Цитата(maxipub @  24.1.2012,  22:14 Найти цитируемый пост)
2. "сбросить" селект (т.е. чтоб был выбран дефолтный пункт - selected="selected")?

Код

var sel = document.getElementsByName("sel")[0];
for (var i = 0, len = sel.options.length; i < len; i++) {
    if (sel.options[i].defaultSelected) {
        sel.selectedIndex = i;
        break;
    }
}


Добавлено через 42 секунды
Нафик. Пока писал, уже ответили.  smile 

Автор: Pretorian 24.1.2012, 19:30
Ещё одно решение.....

Цитата(maxipub @  24.1.2012,  20:14 Найти цитируемый пост)
1. можно на JS как-то выбрать произвольный option-?

Код

function selectRandomOption() {
    var options = document.fm.list1.options;
    var i = Math.floor(Math.random() * options.length);
    options[i].selected = true;
}

Цитата(maxipub @  24.1.2012,  20:14 Найти цитируемый пост)
2. "сбросить" селект (т.е. чтоб был выбран дефолтный пункт - selected="selected")?

Код

<input type="reset" value="Reset">

Но так сбрасывается вся форма, если надо сбросить только select, то придётся запоминать "дефолтный" option
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            var indexOfDefaultOption = 0;
            function init() {
                var options = document.fm.list1.options;
                var i = 0;
                while((i < options.length) && (!options[i].selected)) {
                    i++;
                }
                if (options[i].selected) {
                    indexOfDefaultOption = i;
                }
            }

            function selectRandomOption() {
                var options = document.fm.list1.options;
                var i = Math.floor(Math.random() * options.length);
                options[i].selected = true;
            }
            
            function resetOnDefault() {
                var options = document.fm.list1.options;
                options[indexOfDefaultOption].selected = true;
            }
        </script>
    </head>
    <body onload="init()">
        <form action="" name="fm">
            <select name="list1">
                <option>1</option>
                <option>2</option>
                <option selected>3</option>
                <option>4</option>
                <option>5</option>
                <option>6</option>
                <option>7</option>
                <option>8</option>
                <option>9</option>
                <option>10</option>
            </select>
            <input type="button" onclick="selectRandomOption()" value="Random">
            <input type="reset" value="Reset">
            <input type="button" onclick="resetOnDefault()" value="Reset2">
        </form>
    </body>
</html>

Автор: maxipub 25.1.2012, 13:26
Всем огромное спасибо, парни!

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