Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 05.07.2016
Сообщений: 41

Сохранить предыдущее значение спискка

21.07.2016, 13:27. Показов 3321. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не знаю, в тот ли раздел я обращаюсь. Есть форма html, а в ней есть select(checkbox).
Текущее значение я знаю как получить, а вот как сделать так, чтобы куда то сохранялось предыдущее значение select, которое выбирал пользователь. Потом, когда пользователь выберет новое значение select, то текущее значение записывается в предыдущее значение, а текущее сохраняется в переменную.
HTML5
1
2
3
4
5
SELECT name="s" id="s" onchange="s();">
     <OPTION value="0" selected="selected">выберите ...</option>
     <OPTION value="1" selected="selected">1</option>
     <OPTION value="2" selected="selected">2</option>
</SELECT>

JavaScript
1
2
3
4
function s() {
//сохраняем текущее значение в переменную (тут все понятно)
// сохраняем предыдущее значение (тут не понятно, как это реализовать)
}
Мне бы объяснить хотя бы на словах, вообще возможно ли это сделать и если возможно, то как?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.07.2016, 13:27
Ответы с готовыми решениями:

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

Переменная "запоминает" свое предыдущее значение и увел. его на 1
Собственно задача: Есть переменная = 0, при клике на кнопку она увеличивается на 1. Но как...

Вернуть предыдущее значение элемента
Есть поле ввода с подсказкой к нему: &lt;div class=&quot;form-group&quot;&gt; &lt;input id=&quot;name&quot;...

13
76 / 77 / 40
Регистрация: 03.06.2014
Сообщений: 463
21.07.2016, 13:40
не понял ни хрена...
может проще массив вести с передвижениями пользователя?
0
0 / 0 / 1
Регистрация: 05.07.2016
Сообщений: 41
21.07.2016, 14:32  [ТС]
Ну да, как то мудрено объяснил. Попробую объяснить на примере.
Допустим есть select.
1)Пользователь выбрал значение select с id=2
записали в переменную текущее значение tek=2
Предыдущее значение pred=0
2)Теперь пользователь выбрал значение select с id=10
записали в переменную текущее значение tek=10
Предыдущее значение pred=2
3)Теперь пользователь выбрал значение select с id=1
записали в переменную текущее значение tek=1
Предыдущее значение pred=10

Идея состоит например в использовании всего двух переменных, в которой в первой одно значение -текущее, а во второй переменной предыдущее.
У меня же получается, что во всех переменных находится текущее значение(:
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
21.07.2016, 14:40
Надо использовать local.storage
Если учитывается обновление страницы, то jquery coockie
0
76 / 77 / 40
Регистрация: 03.06.2014
Сообщений: 463
21.07.2016, 14:45
Лучший ответ Сообщение было отмечено spu164 как решение

Решение

JavaScript
1
2
var v1,v2;
$('#s').change(function(){v2=v1;v1=$(this).val();});
1
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
21.07.2016, 14:46
asql, после перезагрузки данные не останутся
0
76 / 77 / 40
Регистрация: 03.06.2014
Сообщений: 463
21.07.2016, 14:48
v1 - текущее
v2 - предыдущее

Добавлено через 29 секунд
я знаю
0
0 / 0 / 1
Регистрация: 05.07.2016
Сообщений: 41
21.07.2016, 15:20  [ТС]
Мне на обновление страницы все равно, пусть теряются. Главное, чтобы не терялись при работе скрипта jquery.
asql, спасибо! До чего же просто.
Сейчас вставил ваш код в функцию. Все работает. А а по невнимательности присвоение вставил после
JavaScript
1
v1=$(this).val();
и думаю, почему же у меня ничего не работало
0
 Аватар для Kraken73
105 / 93 / 50
Регистрация: 17.09.2015
Сообщений: 612
21.07.2016, 15:40
Лучший ответ Сообщение было отмечено spu164 как решение

Решение

Цитата Сообщение от spu164 Посмотреть сообщение
Главное, чтобы не терялись при работе скрипта jquery.
Песочница
HTML5
1
2
3
4
5
<SELECT name="s" id="s">
     <OPTION value="0" selected="selected">выберите ...</option>
     <OPTION value="1" selected="selected">1</option>
     <OPTION value="2" selected="selected">2</option>
</SELECT>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
$(document).ready(function(){
  var current,prev;
    $("#s").change(function(){
      prev = current;
      if (prev == undefined) {
        prev = 0;
      }
      current = $(this).val();
      alert("текущее: "+current + " предыдущее "+prev);
  });
});
1
0 / 0 / 1
Регистрация: 05.07.2016
Сообщений: 41
21.07.2016, 15:44  [ТС]
Так стоп.
JavaScript
1
2
3
4
5
v1=undefined
v2=undefined
v2=v1;v1=$(this).val();
v2=0
v1=13
и так всегда будет v2=0. По крайней мере у меня выдает undefined. Рано радовался.
0
76 / 77 / 40
Регистрация: 03.06.2014
Сообщений: 463
21.07.2016, 15:54
******73,
if (prev == undefined) {
prev = 0;
}

можно проще v2=v1?v1:0;

Добавлено через 2 минуты
spu164,
ну напиши
var v1=0,v2=0;

Добавлено через 5 минут
JavaScript
1
2
var v1,v2; 
$('#s').change(function(){v2=v1?v1:0;v1=$(this).val(); alert(v2+' '+v1);});
все норм пашет
1
0 / 0 / 1
Регистрация: 05.07.2016
Сообщений: 41
21.07.2016, 15:57  [ТС]
******73, в вашем коде выдает предыдущее 0, а текущее 10.
asql, поразбираюсь сейчас еще что к чему. Такое ощущение, что функция просто проходит сначала и снова присваивает изначально заданное значение, вместо того, чтобы запоминать цифру select.
По логике то вроде все просто.
0
76 / 77 / 40
Регистрация: 03.06.2014
Сообщений: 463
21.07.2016, 16:00
удали onchange="s();"
0
0 / 0 / 1
Регистрация: 05.07.2016
Сообщений: 41
21.07.2016, 16:28  [ТС]
Все получилось. asql, а я думал обязательно еще в html коде писать onchange="s();"
Все заработало. Сам виноват, не надо было немного видоизменять скрипт. Вставил все так как есть через отдельно подключаемый файл. все хорошо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.07.2016, 16:28
Помогаю со студенческими работами здесь

Почему value выводит предыдущее значение?
Имеется форма с элементом input и вводом текста, у которого id=&quot;message&quot;. &lt;input type=&quot;text&quot;...

Как вернуть предыдущее значение рассчитанное калькулятором
Здравствуйте, решил создать форму для расчета по формуле (а+б)*с и не могу до конца реализовать...

Как сделать так, чтобы при нажатии на один из пунктов меню, предыдущее значение удалялось а новое добавилось?
На скриншоте видно, что получаться спам в поле для ввода, хотелось бы сделать так, чтобы придедущее...

Чтобы при открытии нового модального окна предыдущее закрывалось через onclick
Здравствуйте. У меня есть label, при нажатии на который открывается модальное окно. В этом...

Как сделать, чтобы при включении видео - предыдущее переставало проигрываться
Есть много видео на одной и той же странице. Надо сделать, чтобы при включении видео - любое другое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru