2010-04-26 5 views
3

J'ai mon datepicker mis en place comme celui-ciJquery Datepicker ne pas sélectionner la date par défaut

$("#scheduled_date_163").datepicker({ 
    onSelect: function(dateText, inst) { 
     jQuery.get("/tasks/inplace_edit?id=scheduled_date_163&class_name=Task&value=" + dateText, function(data){ 
     $('#scheduled_date_163').html(data); 
     $('#scheduled_date_163').removeClass('hasDatepicker'); 
     }) 
    } 
    }); 

$('#scheduled_date_163').datepicker("option", "defaultDate", $.datepicker.parseDate("d m y", "31 8 2009")); 

Comme vous pouvez voir la date est hardcoded. Il est censé être remplacé par du code. Cependant, le piqueur refuse de choisir la date! Il me montre toujours la date actuelle. Impossible de comprendre pourquoi. J'ai même essayé de donner la date dans la chaîne et +7 etc. Mais la date d'aujourd'hui elle-même est montrée comme date par défaut.

Ce qui pourrait être à l'origine de cela?

UPDATE

L'élément de scheduled_date_163 est pas un champ de texte. C'est un clic div.On dont s'exécute le script datpicker javascript ci-dessus.

<div id="scheduled_date_163"> 
    <p class='date'>None</p> 
</div> 

Il n'est pas possible que l'ID div soit répété sur la page.

+0

Avez-vous envisagé de vérifier l'une des solutions theese? –

Répondre

2

DEMO:http://jsbin.com/uqevo3/2/edit

$("#scheduled_date_163").datepicker({ 
    defaultDate: "31-8-2009", //OR $.datepicker.parseDate("dd mm yy", "31 8 2009") 
    dateFormat: 'dd-mm-yy', // format as ##-##-#### 
    onSelect: function(dateText, inst) { 
     jQuery.get("/../" + dateText, function(data){ 
     $('#scheduled_date_163').html(data); 
     $('#scheduled_date_163').removeClass('hasDatepicker'); 
     }) 
    } 
    }); 

NOTE: ne doit déclarer deux fois la même datepicker, ceci est votre principal problème !

alors si vous devez définir quelques options constantes pour plusieurs datepickers, vous pouvez utiliser les fonctions utilitaires .setDefaults()

2

Cela fonctionne pour moi:

$('#scheduled_date_163').datepicker({defaultDate: $.datepicker.parseDate("d m y", "31 8 2009")}); 

Cependant, cela crée juste une date par défaut dans le sélecteur de date elle-même, il ne modifiera pas le champ de saisie. Pour ce dernier, vous pouvez simplement attribuer une valeur à la méthode val().

(La onSelect partie semble sans rapport avec le problème.)

+0

Merci. Le code que vous donnez fonctionne aussi pour moi, comme vous l'avez dit, il change la date par défaut du sélecteur de date lui-même. Je ne veux pas ça. Je le veux pour un cas particulier puisque j'en ai des centaines sur la page. En outre, le sélecteur de date n'est pas affiché sur un champ de saisie, mais il est affiché sur un clic d'un div. Donc, je suppose que l'approche val ne fonctionnera pas. D'autres suggestions? Merci. – Chirantan

+0

Les ID doivent être uniques: si '$ ('# scheduled_date_163')' renvoie plus d'un objet, votre application a besoin d'une légère refonte. Peu importe, je ne peux pas comprendre ce que tu veux faire. Si vous faites quelque chose qui n'est pas standard, vous devriez au moins poster du HTML. –

Questions connexes