Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как сделать пункт в выпадающем списке по умолчанию, после перехода по ссылке? (https://javascript.ru/forum/dom-window/31140-kak-sdelat-punkt-v-vypadayushhem-spiske-po-umolchaniyu-posle-perekhoda-po-ssylke.html)

Damian 28.08.2012 12:19

Как сделать пункт в выпадающем списке по умолчанию, после перехода по ссылке?
 
Добрый день.
Есть форма со списком select. В ней несколько пунктов option. При переходе по ссылке с другой страницы необходимо делать так, чтобы выбирался нужный пункт автоматически (по умолчанию).
К примеру, есть список
- Кот
- Кошка
- Динозавр.
При переходе с главной страницы по ссылке, например, "Кошка", в списке было выбрано
- Кошка.
И т.д.
Как это сделать? Заранее спасибо.

Deff 28.08.2012 12:21

Цитата:

Сообщение от Damian
Как это сделать? Заранее спасибо.

Анализируете -и сравниваете скриптом свои ссылки в списке с адресом текущей страницы - её и делаете активной

Damian 28.08.2012 12:25

ммм.. Спасибо, а можно поподробнее?

Deff 28.08.2012 12:45

var testLnk = location.href;
далее ищите свою ссылку в списке - делайте попытки -выкладываете минимальное HTML и скрипты - Вам помогут

lord2kim 28.08.2012 12:48

Damian, предположим вы на странице http://domain.ru/?cat
window.onload = function () {
    var opt = (window.location.search).replace("?", "");
    var select = document.getElementById("id вашего select").options;
    for (i=0; i < select.length; i++) {
        if (select[i].value == opt) { break; }
    }
    document.getElementById("id вашего select").selectedIndex = i;
}

http://javascript.ru/window-location

Damian 28.08.2012 13:39

Мягко говоря, я не очень хорошо разбираюсь в JavaScript :cray:
Не могли бы вы, если не затруднит конечно, дополнить мой код нужным?

Ссылка на главной странице:
<a href="http://site/forma">Собаченька</a>

Форма на внутренней:
<select>
<option>Собаченька</option>
<option>Котэ</option>
</select>

lord2kim 28.08.2012 13:46

Damian, в ссылку еще что-нибудь нужно добавить, типа
<a href="http://site/forma?dog">Собаченька</a>

тогда
window.onload = function () {
    var opt = (window.location.search).replace("?", "");
    var select = document.getElementById("sel").options;
    for (i=0; i < select.length; i++) {
        if (select[i].value == opt) { break; }
    }
    document.getElementById("sel").selectedIndex = i;
}


<select id="sel">
<option value="dog">Собаченька</option>
<option value="cat">Котэ</option>
</select>


а если ниспадающий список статический, т.е.в нем всегда одни и те же пункты на одних и тех же местах, то можно создать объект (ассоциативный массив) и через него подставлять сразу в selectedIndex номер элемента списка

Damian 28.08.2012 14:17

Что-то не работает(((
У меня статичная форма с неизменяемыми полями. Перед ней я поставил
window.onload = function () {
    var opt = (window.location.search).replace("?", "");
    var select = document.getElementById("sel").options;
    for (i=0; i < select.length; i++) {
        if (select[i].value == opt) { break; }
    }
    document.getElementById("sel").selectedIndex = i;
}


Но, перейдя по ссылке, список остаётся как есть.

Damian 28.08.2012 14:17

Полагаю, что я вообще всё не так сделал?

lord2kim 28.08.2012 14:26

Damian, скрипт можете поместить в любом месте страницы, не забывая его заключать в теги <script></script>
вы ссылку(-и) и ниспадающий список поправили в соответствии с постом №7?


Часовой пояс GMT +3, время: 16:13.