Ici, je suis chargé le champ calendrier via jquery ajax. Lorsque je clique sur le bouton du calendrier, rien ne se passe. La fenêtre contextuelle du calendrier ne s'affiche pas.
dans model.php
$tr ="<td>".JHTML::_('calendar','2015-09-09', 'arr_stubat_join_date[]', 'stubat_join_date_'.$value->batch_id,'%Y-%m-%d',array('size'=>'15', 'maxlength'=>'15'))."</td>"; return $tr;
jQuery Ajax
function loadBatch(){
jQuery('#task').val('profile.getbatch');
var dataString = jQuery("#profile-form").serialize();
jQuery('#ajax_loader_image').show();
jQuery.ajax({
type: 'POST',
url: 'index.php',
data: dataString,
cache: false,
success: function(result){
jQuery('#batch_container').append(result);
},
error: function(result){
}
});}
aidez-moi à résoudre le problème du calendrier.
Votre modèle renvoie correctement le code HTML généré par l'appel de classe JHtml
. Mais cette méthode charge également du code JavaScript dans la tête de document. Puisque vous ne rendez pas la totalité de la page, JavaScript n'est pas renvoyé et ne finit jamais dans le navigateur.
Donc, tant que vous avez le code HTML ici, vous manquez la partie JavaScript et donc rien ne fonctionnera.
Vous devrez ajouter manuellement le (s) code (s) JavaScript nécessaire à la page.
Il en va de même pour le style CSS
La réponse de Bakual devrait en fait être acceptée, mais je veux juste montrer l'exemple de code JS qui devrait être ajouté à la page:
<script>
jQuery(document).ready(function($) {
Calendar.setup({
// Id of the input field
inputField: '<?php echo $field->id; ?>',
// Format of the input field
ifFormat: '<?php echo $field->format; ?>',
// Trigger for the calendar (button ID)
button: '<?php echo $field->id; ?>_img',
// Alignment (defaults to "Bl")
align: 'Tl',
singleClick: true,
firstDay: '<?php echo JFactory::getLanguage()->getFirstDay(); ?>'
});
});
</script>
$field
voici un objet JFormField
.