2017-09-15 3 views
-1
$.ajax({ 
      url: '/Staff/GetStaffFamilyDetails', 
      type: 'POST', 
      data: { 
       StaffID: StaffID 
      }, 
      success: function (result) { 
       var markup = "<input type='text' id='FamEdit'>"; 
       $('#div').html(markup); 
      }, 
      complete: function() { 
       $('#FamEdit').datepicker({ 
        keyboardNavigation: false, 
        autoclose: true, 
        format: "dd M yyyy" 
       }); 
      } 
     }) 

Salut les amis. Je lie la datepicker à la variable dynamique, à ce moment-là, une erreur comme datepicker n'est pas définie. S'il vous plaît aidez-moi .. comment lier datepicker dans le succèsPourquoi Bootstrap datepicker ne fonctionne pas dans la fonction Ajax succès

+0

Avez-vous plusieurs éléments avec le même identifiant de 'FamEdit' après la fin de la requête AJAX? Aussi, s'il vous plaît vérifier la console pour les erreurs. –

+0

ajoutez votre code html aussi – Znaneswar

+0

Plus précisément, cochez la réponse sous la réponse acceptée qui vérifie l'existence du datpicker pour ne pas l'écraser https://stackoverflow.com/a/34334388/448144 – Nope

Répondre

-1

Peut-être que le succès et complet tiré en même temps, essayer de faire un temps mort comme ceci:

complete: function() { 
    setTimeout(function() { 
     $('#FamEdit').datepicker({ 
      keyboardNavigation: false, 
      autoclose: true, 
      format: "dd M yyyy" 
     }); 
    }, 100); 
} 

Mais très probablement la meilleure solution est de remplacer HTML et initialiser le programme datepicker dans un événement - succès. Remplacer d'abord, puis initialiser. Pourquoi avez-vous besoin de réinitialiser le sélecteur de date si aucune donnée n'a été reçue (résultat dans votre code)?

-1

Testé votre code sur ma page locale, il fonctionne correctement. « datepicker non défini. »: Il semble que les datepicker.js ne figure pas correctement dans votre page

-1

Parce que vous ajoutez l'entrée id='FamEdit' dynamique, donc datepicker n'est pas assignant à l'élément d'entrée dynamique directement. vous pouvez essayer de suivre.

<div id="mydiv"> 

</div> 

//....// 
success: function (result) { 
      var markup = "<input type='text' id='FamEdit'>"; 
      $('#mydiv').html(markup); 
     }, 
     complete: function() { 
      $('#mydiv').find('#FamEdit').datepicker({ 
       keyboardNavigation: false, 
       autoclose: true, 
       format: "dd M yyyy" 
      }); 
     }