2011-05-16 4 views
1

Je le code suivant:problème avec jQuery setdate après la mise à niveau

<input id="aanschafdatum" type="text" name="aanschafdatum" size="40" value="" /> 
<input id="sel_aanschafdatum" type="hidden" value="12-05-2011" /> 

$(document).ready(function() { 
    var selected_date = document.getElementById("sel_aanschafdatum").value; 
    loadDatepicker('#aanschafdatum', selected_date); 
}); 

function loadDatepicker(id, selected_date) { 
    if (selected_date === undefined) { 
     selected_date = ""; 
    } 
    $(function() { 
     $(id).datepicker(); 
    }); 
    if (selected_date !== '') { 
     $(id).datepicker("setDate", selected_date); 
    } 
} 

Ce code fonctionne bien, la date actuelle "12-05-2011" sera définie dans le datepicker. Mais après la mise à niveau vers la dernière version de jQuery, cela ne fonctionne plus. Seulement si je retire le document.ready de:

var selected_date = document.getElementById("sel_aanschafdatum").value; 
loadDatepicker('#aanschafdatum', selected_date); 

cela fonctionne. J'ai testé avec jsFiddle. Avec jQuery 1.4.4 cela fonctionne bien; avec jQuery 1.5.2, il ne définit pas la valeur actuelle.

J'espère que quelqu'un peut aider, merci d'avance.

Edwin

Répondre

1

Vous avez mal jQuery « syntaxe », probablement dans les versions les plus récentes, ils ne pardonnent pas une telle chose plus.

À l'intérieur de la fonction loadDatepicker vous emboîtez du code à l'intérieur du bloc $(function() {} - c'est faux.

Cela devrait être l'inverse, ce qui signifie que le bloc $(function() {} doit imbriquer les fonctions que vous voulez exécuter. Comme vous l'avez déjà ce code dans le contexte de $(document).ready il suffit de retirer le $(function() { et vous êtes bon:

function loadDatepicker(id, selected_date) { 
    if (selected_date === undefined) { 
     selected_date = ""; 
    } 

    $(id).datepicker(); 

    if (selected_date !== '') { 
     $(id).datepicker("setDate", selected_date); 
    } 
} 

Mise à jour jsFiddle:
http://jsfiddle.net/MgWNv/5/

+0

Résolu, je vous remercie beaucoup! – emeijer

+0

@eme acclamations et bienvenue sur Stack Overflow, si ma réponse a résolu votre problème, veuillez le marquer comme Accepté en cliquant sur l'icône V à gauche - de cette façon les gens sauront que cette question est résolue. –

Questions connexes