Как сделать пункт в выпадающем списке по умолчанию, после перехода по ссылке?
Добрый день.
Есть форма со списком select. В ней несколько пунктов option. При переходе по ссылке с другой страницы необходимо делать так, чтобы выбирался нужный пункт автоматически (по умолчанию). К примеру, есть список - Кот - Кошка - Динозавр. При переходе с главной страницы по ссылке, например, "Кошка", в списке было выбрано - Кошка. И т.д. Как это сделать? Заранее спасибо. |
Цитата:
|
ммм.. Спасибо, а можно поподробнее?
|
var testLnk = location.href;
далее ищите свою ссылку в списке - делайте попытки -выкладываете минимальное HTML и скрипты - Вам помогут |
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 |
Мягко говоря, я не очень хорошо разбираюсь в JavaScript :cray:
Не могли бы вы, если не затруднит конечно, дополнить мой код нужным? Ссылка на главной странице: <a href="http://site/forma">Собаченька</a> Форма на внутренней: <select> <option>Собаченька</option> <option>Котэ</option> </select> |
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 номер элемента списка |
Что-то не работает(((
У меня статичная форма с неизменяемыми полями. Перед ней я поставил 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, скрипт можете поместить в любом месте страницы, не забывая его заключать в теги <script></script>
вы ссылку(-и) и ниспадающий список поправили в соответствии с постом №7? |
тестовый пример выложите или ссылку на сайт дайте, тогда можно будет о чём-то говорить
|
Прошу прощения. Оказывается всё работает. Во всяком случае на локалке. Это на сервере я что-то напутал.
Спасибо огромное за помощь:) |
Держи ещё один вариант
<select id="sel"> <option value="main">главная</option> <option value="learn">учебник</option> <option value="forum">форум</option> </select><br> <a href="http://javascript.ru" target="blank" id="0">главная</a><br> <a href="http://learn.javascript.ru/" target="blank" id="1">учебник</a><br> <a href="http://javascript.ru/forum/" target="blank" id="2">форум</a> <script> window.onload = function () { var sel = document.getElementById('sel'); document.body.onclick = function (e) { e = e || event; var target = e.target || e.srcElement; if (target.tagName == 'A') { sel.selectedIndex = target.id; } } } </script> |
И ещё раз большущее спасибо))) :)
|
Добрый день. Вопрос аналогичный этому, посему решил прям здесь задать.
Нужно сделать так, чтобы при переходе по ссылке с одной страницы на форму другой страницы, в форме выбирался нужный чекбокс. Переходим по ссылке "Собаченька" на страницу с формой, а там чекбокс стоит на собаченьке. Как бы это реализовать? Заранее спасибо. |
так пусть на этой странице этот чекбокс и стоит по умолчанию чекнутым
|
Damian, или если загружается по ссылкам (Собаченька, Котэ и т.д.) одна и та же страница, то как то так
<select id="sel"> <option value="dog">dog</option> <option value="pig" selected>pig</option> <option value="cat">cat</option> </select><input type="checkbox" id="dog">doggi <a href="?dog&check=1">asdasd</a> <script> window.onload = function () { var search = (window.location.search).replace("?", ""), opt = search.indexOf("&") ? search.split("&")[0] : ""; var select = document.getElementById("sel").options; for (i=0; i < select.length; i++) { if (select[i].value == opt) { document.getElementById("sel").selectedIndex = i; break; } } if (search.split("&")[1] && search.split("&")[1].split("=")[0] && search.split("&")[1].split("=")[0] == "check" && search.split("&")[1].split("=")[1] == "1") { document.getElementById("dog").checked = true; } else { document.getElementById("dog").checked = false; } } </script> или регулярками... |
мммм... А зачем select?
У меня, к примеру, форма такая <label> <input type="checkbox">Чекбокс 1</label> <br> <label> <input type="checkbox">Чекбокс 2</label> <br> <label> <input type="checkbox">Чекбокс 3</label> <br> <label> <input type="checkbox">Чекбокс 4</label> То есть там одни чекбоксы. Пытался Ваш код переделать, но ничего не вышло. Может есть какие-то варианты? |
Кстати, рабочий вариант такой (если кому интересно):
<label> <input type="checkbox" id="chek_1">Чекбокс 1</label> <br> <label> <input type="checkbox" id="chek_2">Чекбокс 2</label> <br> <label> <input type="checkbox" id="chek_3">Чекбокс 3</label> <br> <label> <input type="checkbox" id="chek_4">Чекбокс 4</label> И ниже <script language="JavaScript"> var ref = document.referrer; switch (ref) { case 'URL страницы со ссылкой': document.getElementById("chek_1").setAttribute("checked", "1"); break case 'URL страницы со ссылкой': document.getElementById("chek_2").setAttribute("checked", "1"); break case 'URL страницы со ссылкой': document.getElementById("chek_3").setAttribute("checked", "1"); break case 'URL страницы со ссылкой': document.getElementById("chek_4").setAttribute("checked", "1"); break } </script> |
Часовой пояс GMT +3, время: 10:13. |