2009-10-01 5 views
0

Un événement OnClick appelle la fonction datepicker suivante. Si une alerte est présente alors, cela fonctionne bien. Sinon, il ne montre pas le calendrier comme requis. Est-ce un problème de synchronisation?Le script js fonctionne uniquement lorsque l'alerte est présente - pas un appel ajax

function changeStartDate(Item){ 
      alert ("alert goes here"); 

    $("#datepicker_" + Item).datepicker({     
    dateFormat: 'M-dd-yy', 
    onClose: function(dataText, inst){ 
     newDate = dataText; 
         processDateChange(newDate); 
    }, 
    }); 

    flag = 1; 
    } 

Lorsqu'il est appelé à partir de:

'<div class="InfoBoxLong" id="StartDate_' + TransactionOrderItemID + '"><input id="datepicker_' + TransactionOrderItemID + '" type="text" size="9" id="StartDate_' + TransactionOrderItemID + '" onClick="changeStartDate(\'' + TransactionOrderItemID + '\')" value="' + ActivationStartDate + '"> </input></div>' + 
+0

Pourriez-vous nous montrer à quelle position mettez-vous en alerte? – NawaMan

+0

J'ai essayé ceci sur une nouvelle page avec seulement un datepicker et le manuscrit et cela fonctionne bien. Quoi d'autre pourrait se passer sur votre page? Peut-être un focus ou un événement flou? les alertes déclencheront celles-ci –

+0

Il existe plusieurs autres fonctions mais aucune pour onFocus, ou OnBlur. OnClick show datepicker, c'est l'objectif. La fonction est appelée, mais le marqueur de date n'est pas affiché immédiatement ou de manière cohérente. – Natkeeran

Répondre

3

possible le calendrier DOM n'a pas fini de rendre - l'ajout d'une alerte() bloque la page qui lui donne le temps de terminer le rendu. Utilisez l'équivalent de jquery.ready (http://docs.jquery.com/Events/ready#fn) pour afficher le calendrier, puis affichez-le (plutôt que de le rendre) sur l'événement onclick.

+0

Vous avez probablement raison. Mais, je ne suis pas sûr de l'équivalent prêt pour cela. – Natkeeran

+0

Eh bien, je vois que vous utilisez $ ("# datepicker_" + Item), et avec le $ il est probable que vous utilisez soit jQuery ou Prototype comme une bibliothèque de soutien. Savez-vous lequel il pourrait être? –

+0

J'utilise Jquery. – Natkeeran

0

J'ai changé l'événement onClick en événement onMouseOver, et cela semble fonctionner correctement. Bien que, je ne suis pas à l'aise de l'utiliser, car il déclenchera souvent cet événement. Merci pour toutes les réponses.

Questions connexes