2017-11-16 8 views
0

ドロップダウンをクリックした後でも同じオプション値を選択しようとしていますが、未定義と言っています。ここに私のコードは次のとおりです。ドロップダウン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>

は、私はこの点を説明することはできませんので、私は、ブートストラップに慣れていないんだけど、明らかに、あなたのケースでは問題があることであるあなたに

+1

記載してくださいhtmlの –

+0

のようなすべての関連コードには、より多くのコードが含まれています。 .acc要素は何ですか? – causita

+0

私はいくつかのhtmlを追加しました。 – LaMars

答えて

0

ありがとうございましたon('shown.bs.select', ...)は発砲しないので、previous_valueundefinedのままです。

しかし、あなたのニーズに合った解決策はかなり簡単です。開始時に無条件に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>

関連する問題