【问题标题】:keep previously selected value in dropdown jquery在下拉jQuery中保留先前选择的值
【发布时间】:2017-11-16 17:19:23
【问题描述】:

即使在单击下拉列表后,我也试图保持选择相同的选项值,但它只是一直说未定义。这是我的代码:

 var previous_value;
        $(".acc").on('shown.bs.select', function(){previous_value = this.value;}).change(function() {       
                if($('img').is(':visible')){               
                    if(window.confirm('Please save or data is lost')){                   
                        var t = $('.acc option:selected').val()                 
                       alert(t);
                    }else {
                       //code here              
                     }
                    }
                     else {
                      //code here        
                     }                  
            });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img  class = "<?php echo $i ?>" src="" alt="" height="22" width="30"> <br/>
    
    <label> AD Mgr </label><br/>
                    <select class = "acc"  >
                    <option  value="1" selected>1</option>
                    <option  value="2">2</option>
                    <option  value="3">3</option>
                     </select>

谢谢

【问题讨论】:

  • 请包含所有相关代码,包括html
  • 是的,包括更多代码甚至更好的 jsfiddle。 .acc 这是什么元素?
  • 我添加了一些html。
  • @LaMars 当我运行你的代码时,我得到了警报中的值。什么不适合你?
  • 要获取shown.bs.select 上元素的值,请使用:previous_value = $(this).val()

标签: javascript jquery


【解决方案1】:

我不熟悉引导程序,所以我无法解释这一点,但很明显,你的问题是 on('shown.bs.select', ...) 没有触发,所以 previous_value 仍然是 undefined

不过,满足您需求的解决方案非常简单:您必须在开始时无条件设置previous_value

这是您的代码的修改版本,其中不仅alert() 显示新的和以前的值,而且下拉列表始终保持不变,就像您要求的那样:

var previous_value =
  $(".acc").change(function() {
    if ($('img').is(':visible')) {
      if (window.confirm('Please save or data is lost')) {
        var t = $('.acc option:selected').val();
        alert('New value: ' + t + '\nPrev value: ' + previous_value);
        $(this).find('option[value=' + previous_value + ']').prop({selected: true});
      } else {
        //code here              
      }
    } else {
      //code here        
    }
  })
  .val();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img  class = "<?php echo $i ?>" src="" alt="" height="22" width="30">
<br/>
<label> AD Mgr </label>
<br/>
  <select class="acc">
    <option value="1" selected>1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>

【讨论】:

    猜你喜欢
    • 2013-02-10
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2014-06-26
    • 2016-01-13
    • 1970-01-01
    相关资源
    最近更新 更多