2009-11-11 3 views
0

J'ai un champ de texte de formulaire qui extrait une date d'une base de données (au format aaaa-mm-jj).Impossible de trouver defaultDate dans jQuery UI datepicker

<input class="" type="text" name="closingDate" id="closingDate" value="<?php echo $closingdate;?>" />@ Midday 

J'ai alors un datepicker jQuery qui va récupérer sa valeur « defaultDate » comme l'attribut de valeur de l'entrée indiquée ci-dessus.

$(document).ready(function(){ 
$("#datepicker").datepicker({defaultDate: 'input#closingDate.attr('value')' , altField: 'input#closingDate' , altFormat: 'yy-mm-dd'}); 
}); 

(note de PLZ: yy-mm-dd est correct pour formater aaaa-mm-jj, également $ date de clôture des correctement de l'écho comme aaaa-mm-dd comme je l'ai vérifié ailleurs dans la page).

Cependant, l'outil datepicker ne saisit pas la date dans le champ de saisie, il a simplement la valeur 'today'.

Répondre

3

Désolé d'être si tard, mais pour être complet ici est ce qui a fonctionné pour moi.

Fondamentalement, vous devez utiliser la même dateFormat que le datepicker ou passer un objet Date. Le problème avec ceci est que la valeur d'entrée est changée en '' donc ce n'est pas bon pour un formulaire d'édition.

Personnellement, j'utilise la méthode setDate avec un objet Date, de cette façon je peux utiliser '2001-01-01' en php mais afficher une date plus "agréable" dans l'entrée.

$(document).ready(function(){ 
    $("#datepicker").datepicker({ 
     altField: 'input#closingDate', 
     altFormat: 'yy-mm-dd', 
     dateFormat:'DD, d MM, yy' 
    }); 
    $("#datepicker").datepicker("setDate", new Date($("input#closingDate").attr("value")); 
}); 
0

Vous ne devriez pas mettre votre date par défaut dans une chaîne littérale, la fonction .attr() retourne une chaîne:

$(document).ready(function(){ 
    $("#datepicker").datepicker({ 
     defaultDate: $('input#closingDate').attr('value'), 
     altField: $('input#closingDate'), 
     altFormat: 'yy-mm-dd' 
    }); 
}); 
+0

Salut Soviut, merci pour votre réponse. J'ai essayé votre code, il enregistre une date ... mais il indique la mauvaise date - je sais que la valeur de la base de données a la date '2010-01-01', le code ci-dessus sort '2015-05-12' dans le champ de texte, bien qu'il affiche correctement ce mauvais sur le datepicker: S presque là je pense, des idées? – ab24

+0

C'est probablement juste un problème de formatage de date. Regardez dans l'objet Date Javascript pour savoir comment reformater facilement une date selon ce dont vous avez besoin. – Soviut

+0

Hey Soviut, j'ai essayé de modifier le format de la date, mais en vain. plus d'idées? – ab24

0

Je sais que c'est un peu en retard, mais j'ai eu exactement le même problème lorsque vous essayez de définir la date par défaut dans l'outil DatePicker de l'interface utilisateur JQuery.

Il a continué à prendre mon asp.net DateTime et en ajoutant des années au hasard à lui ou quelque chose.

Ma solution:

var myDate= new Date('<%=myObject.myDate.ToLongDateString() %>'); 
$("#mytextbox").datepicker({ defaultDate: myDate });