2017-02-12 61 views
0

我试图从我的ajax将数据追加到类哥打。 我的ajax没有错误,但追加不起作用。 问题在我的$(this).parents()。next()。children('。kota')?选择器来追加html

HTML:

<div class="col-md-3 form-group"> 
           <select id="propinsi" required="required" placeholder="Provinsi" name="propinsi" class="form-control propinsi"> 
           <option value="" selected disabled>--PilihProvinsi--</option> 
           </select> 
           </div> 
           <div class="col-md-3 form-group"> 
           <select id="kota" required="required" placeholder="Kota/Kab" name="kota" class="form-control kota"> 
           <option value="" selected disabled>--Pilih Kota/kab--</option> 
           </select> 
           </div> 

我的JS:

$('.propinsi').change(function(){ 
       var val = $('.propinsi').val(); 
       $(this).parents().next().children('.kota').empty(); 
       $.ajax({ 
        url: site_url+"Master/runkab/"+val, 
        dataType: 'JSON', 
        success: function (data) { 
         $.each(data, function (i, valu) { $(this).parents().next().children('.kota').append('<option value="' + valu.id_kab + '">' + valu.kota + '</option>'); 
         }); 
        } 
       }); 
      }); 

回答

0

您需要分配$(this)变量

$('.propinsi').change(function(){ 
       var $this = $(this); 
       var val = $this.val(); 
       $this.parents().next().children('.kota').empty(); 
       $.ajax({ 
        url: site_url+"Master/runkab/"+val, 
        dataType: 'JSON', 
        success: function (data) { 
         $.each(data, function (i, valu) { $this.parents().next().children('.kota').append('<option value="' + valu.id_kab + '">' + valu.kota + '</option>'); 
         }); 
        } 
       }); 
      }); 
+0

感谢的人 btw即时通讯尝试获得像这样的值var $ this = $(this); ('。propinsi')。val();但错误 – faza

+0

编辑我的答案,所以你可以收到像这样的值:var $ this = $(this); var val = $ this.val(); –

0

试试这个:

 $('#propinsi').change(function(){ 
      var val = $(this).val(); 
      var route = site_url+"Master/runkab/"+val; 
      $.ajax({ 
       type: "POST", 
       url: route, 
       dataType: 'JSON', 
       success: function(data) { 
        // Remove current options 
        $('#kota').html(''); 

        $.each(data, function(k, v) { 
         $('#kota').append('<option value="' + v + '">' + k + '</option>'); 
        }); 
       } 
      }); 

      return false; 
     });