2010-04-26 161 views
3

我有我的日期选择器设置如下Jquery的日期选择器不选择默认的日期

$("#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")); 

正如你所看到的日期是固定的。它应该被替换为一些代码。但是,日期选择器拒绝选择日期!它总是显示我当前的日期。无法找出原因。我甚至尝试给出字符串中的日期,并且+7等。但今天的日期本身显示为默认日期。

这可能是什么原因造成的?

UPDATE

与scheduled_date_163的元素不是文本字段。它是一个div.On点击上面写的datepicker JavaScript执行。

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

div ID在页面上没有重复的方式。

+0

你有没有考虑到检查theese解决方案之一? – 2012-04-28 02:12:02

回答

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'); 
     }) 
    } 
    }); 

注:没有需要申报同一日期选择器的两倍,这是你的主要问题!

然后如果你需要设置多个datepickers一些不变的选择,您可能需要使用 实用功能.setDefaults()

2

这个工作对我来说:

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

然而,这只是设置在日期选择器本身的默认日期,它不会改变输入字段。对于后者,你可以简单地用val()方法赋值。

(该onSelect部分看起来风马牛不相及的问题。)

+0

谢谢。但是,您给出的代码也适用于我,如您所说,它会更改日期选择器本身的默认日期。我不想那样。我想要一个特定的实例,因为我在页面上有数百个。此外,日期选择器不会显示在输入字段上,但会在点击某个div时显示。所以我认为val方法不行。还有其他建议吗?谢谢。 – Chirantan 2010-04-26 08:37:43

+0

ID必须是唯一的:如果$('#scheduled_date_163')'返回多个对象,则您的应用程序需要稍微重新设计。无论如何,我不明白你想要做什么。如果你正在做非标准的事情,你至少应该发布一些HTML。 – 2010-04-26 09:34:25