下拉currentIndex onchange

有5个选项的下拉菜单。 目前,选项2被选中。用户现在选择选项4. onchange事件被触发,这被捕获在一个JS函数中,在select上侦听onchange。

在JS函数中,我可以轻松地检查用户使用selectedIndex属性选择的选项的索引。但是,我也想知道用户将其改为的原始值是什么。

在这种情况下是否存在一个基本上保留原始值的属性,即选项2。


就像我把一个概念放在一起 - 可能有更好的方法来做到这一点:

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();

正如dl所说的那样,您可以使用简单的隐藏变量来保存该值。我们可以将当前值设置为隐藏变量。

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

不,你需要坚持自己在一个JS变量。

链接地址: http://www.djcxy.com/p/43965.html

上一篇: Dropdown currentIndex onchange

下一篇: Intercepting clicks from subview in Android