簡體   English   中英

在下拉列表中保留先前選擇的值

[英]keep previously selected value in dropdown jquery

我試圖保持相同的選項值,即使在單擊下拉菜單后也是如此,但是它一直在說未定義。 這是我的代碼:

  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> 

謝謝

我不熟悉引導程序,因此我無法解釋這一點,但是,很明顯,您的情況是, 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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM