Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сохранять значение select (https://javascript.ru/forum/misc/38374-sokhranyat-znachenie-select.html)

bes 29.05.2013 23:08

http://javascript.ru/window-location
я добавил в hash позицию (номер) выбранного пункта, при загрузке взял из этого хеша этот номер и использовал его для установки списка в эту позицию

djonA 29.05.2013 23:15

Сделал как Вы писали:
<select id="sel" onchange="window.location=this.value + '#' + this.selectedIndex">
<option value="/test1">1</option>
<option value="/test2">2</option>
<option value="/test3">3</option>
</select>


Теперь в конце добавляет #1 или #2 или #3

А как теперь в зависимости от #1 или #2 или #3 выбирать активный селект?
Если выбрал селект 3, что бы при переходе на страницу активным был
<option selected="selected" value="/test3">3</option>

bes 29.05.2013 23:17

я сделал это в onload

djonA 29.05.2013 23:25

Все теперь понял.

Только получается специфика сайта что на body не могу повесить.

А можно повесить на другой элемент?

djonA 30.05.2013 01:15

В ie не работает этот вариант

djonA 30.05.2013 01:16

не сохраняет значение

edison 30.05.2013 05:23

Зачем вообще тут мучить js??? Если сервер и так знает на какую страницу перешел и с какими параметрами и уже там просто помечать нужный параметр.

ANAGAMA 30.05.2013 18:03

Цитата:

Сообщение от djonA (Сообщение 253458)
Т.е выбираю скажем 1, выполняю переход на страницу: site.ru/test1 И там уже у меня сразу в списке стоит selected поле 1: <option selected="selected" value="/test1">1</option>

Подозреваю, что речь идет о заказе, который размещается на нескольки последовательных страницах.

Итак, начнем с конца и увидим начало :)

1. test1 получая какую то информацию выставляет нужный селект

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

3. и ты ды...

А теперь провокационный вопрос. Зачем пользователю этот селект на второй странице, если он уже сделал свой выбор?

Правильнее будет, просто вывести ему значение, которое он уже выбрал.

bes 30.05.2013 21:02

Цитата:

Сообщение от djonA
В ie не работает этот вариант

у меня везде работает

<p>change me</p>
<select onchange="this.selectedIndex = 2">
	<option>0</option>
	<option>1</option>
	<option selected>2</option>
	<option>3</option>
	<option>4</option>
</select>

<select onchange="this.options[3].selected = true">
	<option>0</option>
	<option>1</option>
	<option>2</option>
	<option selected>3</option>
	<option>4</option>
</select>


Цитата:

Сообщение от edison
Зачем вообще тут мучить js??? Если сервер и так знает на какую страницу перешел и с какими параметрами и уже там просто помечать нужный параметр.

видимо чтобы шаблон встал

лично мне по душе подтягивать всё ajax-запросами, про то как это индексируется информация есть

UPD: пару полезных ссылок
https://developer.mozilla.org/en-US/...LOptionElement
https://developer.mozilla.org/en-US/...LSelectElement

zOdmin 30.05.2013 21:45

Можно запоминать в localStorage.

<script>
//отладка
document.write("Для справки: "+(localStorage.seltag==undefined?"Вы здесь впервые":"Ранее Вы выбрали опцию "+localStorage.seltag));
</script><br>
<select id="seltag" onchange="localStorage.seltag=this.selectedIndex">
	    <option>0</option>
	    <option>1</option>
	    <option>2</option>
	    <option>3</option>
	    <option>4</option>
</select>
<script>
//восстанавливаем запомненное значение, если есть
if(localStorage.seltag!==undefined) seltag.selectedIndex = localStorage.seltag;
</script>


Если нужно запомнить только для текущей сессии, то соответственно sessionStorage вместо localStorage


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