2016-03-30 6 views
0

Öğe tıklamasında gösterdiğim bir modelim var. Bu yüzden Ajax üzerinden bu modaldaki bir giriş değerini güncellemek istiyorum, veriyi başarılı bir şekilde alabilirim ancak normalde değerini güncellemiyor (diğer bir makale kaydının değeri değil, geçerli makale kimliği), burada benim kodum:Javascript: modalda gösterilen ajax ile giriş değerini güncelleyin

$('#editArticle').on('show.bs.modal', function (e) { 
    ... 
    $articleID = $(e.relatedTarget).attr('data-id'); 
    $.ajax({ 
      type: "GET",     
      url : 'article/'+ $articleID +'/getData',     
      dataType : "json", 
      success : function(data){      
       document.getElementById("serial").value = data['serial']; 
      } 
    }); 
}); 

ve derhal değerini verir verileri gösterecek şekilde uyarı ayarlarsanız:

success : function(data){ 
       alert(data['serial']); // here it returns the right value for each row, and it appears after the modal show !!!!     
       document.getElementById("serial").value = data['serial']; 
      } 

Kayıtlar datatable listelenmiştir: hata nedir enter image description here ?!

+0

için çalışır: , bir göz atın lütfen? –

+0

"Veriler" içinde ne yazabilirsiniz? Ayrıca jquery kullanmanın amacı nedir ve daha sonra 'document.getElementById' için JS'ye geri dönmek nedir? Neden jQuery selektörü kullanılmıyor ?: '$ (" # serial ") val (data ['seri']); – Blindsyde

+0

@FernandoUrban Bağlantıyı şu şekilde tıklıyorum: BKF

cevap

0

IMO, önce modal klonlamaya çalışın, sonra kimliği veya sınıfı klonlanmış modda bulun. Bu örnekte, eklenti olarak bir önyükleme iletişim kutusu kullanıyorum. Eğer tıklama olay dinleyicisi kullanmıyorsanız Neden

var modal = $('.modal').clone(); 
 

 
BootstrapDialog.show({ 
 
    title: 'blabla', 
 
    message: modal.show(), 
 
    onshow: function() { 
 
     $(modal).find('#result').text('updated text'); 
 
    }, 
 
    buttons: [{ 
 
     label: 'Cancel', 
 
     action: function(dialogRef) { 
 
     dialogRef.close(); 
 
     } 
 
    }] 
 
});
<div class="modal" style="display:none"> 
 
    <div id="result"></div> 
 
</div>

Umut bu kod sorununuza