Выпадающее окно currentIndex onchange

имеется выпадающий список с 5 вариантами. В настоящее время выбрана опция 2. Пользователь выбирает вариант 4. Теперь происходит событие onchange, которое попадает в JS-функцию, которая прослушивает onchange при выборе.

В JS-функции я могу легко проверить индекс опции, выбранной пользователем, используя свойство selectedIndex. Однако я хочу также узнать, какое исходное значение изменил пользователь из.

Есть ли свойство, которое сохраняется в основном первоначальное значение, т.е. вариант 2 в этом случае.

Ответ 1

Точно так же, как концепция, я собрал следующее: это может быть лучший способ сделать это:

var vals = [];

document.getElementById("colors").onchange = function(){
   vals.unshift(this.selectedIndex);
};

function getPrevious(){
  alert(vals[1]); // you'll need more logic here
                  // this is purposefully simplistic
}

-

<select id="colors">
   <option>Red</option>
   <option>Green</option>
   <option>Blue</option>
</select>

Закрытый пример:

Я попытался связать все это с самим выпадающим элементом. Честно говоря, это первый раз, когда я когда-либо добавлял функции в раскрывающееся меню, поэтому я не могу обещать, что это не будет иметь последствий:

   var colors = document.getElementById("colors");
       colors.vals = [];
       colors.setPrevious = function() { this.vals.unshift(this.selectedIndex); }
       colors.getPrevious = function() { return this.vals[1]; }
       colors.onchange    = function() { this.setPrevious(); this.getPrevious(); }
       // set initial state
       colors.setPrevious();

Ответ 2

Как сказано в dl, вы можете использовать простую скрытую переменную для хранения значения. Мы можем установить текущее значение в скрытом varaible.

<input type = "hidden" id = "previous" name = "previous"></input>

Ответ 3

Нет, вам нужно будет сохранить это в переменной js.