2016-04-09 34 views
1

JavaScript ve jQuery ürünlerinde yeniyim. Veritabanından alınan bir açılır liste var. Herhangi birini seçtiğimde, metin olarak eklenir ve açılır listeden kaldırılır. Herhangi birini kaldırmak istersem, her metne bir düğme yerleştirdim. Tıkla düğmesini tıkladığınızda, seçim listesinde tekrar eklenir.Ekle kaldır Listeye geri dön

Sorunum, herhangi bir metin seçeneğini kaldırdığımda, açılır listeden boş seçime geri dönmesidir.

Kaldırılan seçeneği yeniden seçili listeye metin olarak eklemek istiyorum. Nerede yanlış bir şey yaptığımı bilmiyorum.

 $(document).ready(function() { 
 
     $('#location').click(function() { 
 
      if($(this).find("option:selected").val() != 0) { 
 
       $('#Locality').append("<div><input type='text' class='field' value='" + $(this).find("option:selected").text() + "' disabled/><input type=\"button\" class='removeBtn' value=\"Remove\" id=\"removeBtn\" /></div>"); 
 
       $(this).find("option:selected").remove(); 
 
      } 
 
      $('.removeBtn').on('click', function() { 
 
       $(this).parent().remove(); 
 
       $("#location").append('<option>' + $(this).parent().text() + '</option>'); 
 
      }); 
 
      }); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="Locality"> 
 
     <select name="supplyLocation" id="location" > 
 
      <option value="0">Select Locality</option> 
 
     </select> 
 
    </div>

cevap

0

bu benim için çalıştı ancak seçme menüde geri koyduğunuzda son seçenek olacaktır, burada JsFiddle https://jsfiddle.net/9tLc1pa4/1/

JS

$(document).ready(function() { 
    $('#location').change(function() { 
     if($(this).find("option:selected").val() != 0) { 
      $('#Locality').append("<div><input type='text' class='field' value='" + $(this).find("option:selected").text() + "' disabled/><input type=\"button\" class='removeBtn' value=\"Remove\" id=\"removeBtn\" /></div>"); 
      $(this).find("option:selected").remove(); 
     } 
     $('.removeBtn').on('click', function() { 
      $(this).parent().remove(); 
      var text = '<option>' + $(this).parent().find('input').val() + '</option>'; 
      $("#location").append(text); 
     }); 
     }); 
    }); 
var
+0

Ayrıca benim için kısmen çalışır, yani bir seçenek seçip bu seçeneği kaldırdığımda, t o listeyi normal olarak seçin, ancak iki seçenek eklediğimde ve herhangi birini kaldırdığımda, seçim listesinde iki, üç veya beş aynı kaldırma seçeneğini ekleyin. –

+0

Sanırım bunun nedeni, herhangi bir kaldır düğmesine bastığımda "removeBtn" sınıfını kullanıyorum. –

+0

üç seçenek belirlediğimde ve herhangi birini kaldırdığımda, yedi aynı kaldırma seçeneğini ekler. –