首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用在jquery中选择获取下拉列表的上一个和当前选定的值

使用在jquery中选择获取下拉列表的上一个和当前选定的值
EN

Stack Overflow用户
提问于 2015-01-26 15:15:09
回答 3查看 1.1K关注 0票数 0

我有一个下拉列表

代码语言:javascript
运行
复制
 <select name="manager" class="managerchosen-select-deselect" >
    <option value="" >Select  Manager</option>
    <option value="xyz"> XYZ </option>
    <option value="abc"> ABC</option>
    <option value="pqr"> PQR</option>
  </select>

我需要2个警报基于此下拉菜单上的2个事件。第一个是当我点击下拉列表时,先前的值必须显示在警告中,第二个是在改变下拉列表时,当前选择的值将显示在警告中。

我已经尝试了以下jquery代码,但我只收到了一个警报,即更改。我不会因为点击而收到警报。为什么?

代码语言:javascript
运行
复制
    var lastvalue;
   $(".manager").bind("click", function(e){
     lastValue = $(this).val(); 
     alert(lastvalue);
     }).bind("change", function(e){ alert('value changed');
     changeConfirmation = confirm("Are You Sure?");
   if (changeConfirmation) {
      //proceed
   } else {
      $(this).val(lastValue);
   }
   });
EN

回答 3

Stack Overflow用户

发布于 2015-01-26 15:20:58

分别定义它们

代码语言:javascript
运行
复制
    var lastvalue;
   $(".manager").bind("click", function(e){
     lastValue = $(this).val(); 
     alert(lastvalue);
     });
   $(".manager").bind("change", function(e){ 
     alert('value changed');
     changeConfirmation = confirm("Are You Sure?");
     if (changeConfirmation) {
      //proceed
     } else {
      $(this).val(lastValue);
     }
   });

您可以使用defaultValue来检索初始值。

票数 1
EN

Stack Overflow用户

发布于 2015-01-26 15:33:39

考虑到您在将select类managerchosen-select-deselect声明为manager chosen-select-deselect时的输入错误,您可能想尝试一下:

http://jsfiddle.net/wsejec8L/

代码语言:javascript
运行
复制
(function () {
    var lastValue;    
 $(".manager").on('click', function () {
       lastValue = this.value;
 }).change(function() {
          alert('Previous value: ' + lastValue);
          alert('Current value: ' +this.value);
          lastValue = this.value;
});
})();
票数 0
EN

Stack Overflow用户

发布于 2015-01-26 15:44:48

请确保您的select元素上有manager类。您可以使用focus event而不是click,因为用户可以按tab并到达下拉列表,然后使用箭头键更改值,单击在此用例中将不起作用。

代码语言:javascript
运行
复制
(function () {
    var lastValue;    
    $(".manager").on('focus', function () {
        lastValue = this.value;
    }).change(function() {
        alert('Previous value: ' + lastValue);
        alert('Current value: ' +this.value);
        lastValue = this.value;
    });
})();

更新小提琴(使用焦点):http://jsfiddle.net/wsejec8L/1/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28146008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档