Javascript Jquery datepicker,如何设置未来日期

Javascript Jquery datepicker,如何设置未来日期,javascript,json,jquery-ui,datepicker,Javascript,Json,Jquery Ui,Datepicker,我有一个显示今天日期的文本框和一个日历图标,单击该图标会打开一个选择了今天日期的日期选择器。我希望当您单击日历图标时,datepicker将在未来的日期(即2012年3月12日)打开 我可以在firebug中的json响应中看到未来的日期- [{"date":"01/05/2012","available":true},{"date":"05/05/2012","available":true}] 但是,当单击日历图标时,如何刷新/重画日历以显示这些日期 这是我的约会选择者 // Load t

我有一个显示今天日期的文本框和一个日历图标,单击该图标会打开一个选择了今天日期的日期选择器。我希望当您单击日历图标时,datepicker将在未来的日期(即2012年3月12日)打开

我可以在firebug中的json响应中看到未来的日期-

[{"date":"01/05/2012","available":true},{"date":"05/05/2012","available":true}]
但是,当单击日历图标时,如何刷新/重画日历以显示这些日期

这是我的约会选择者

// Load the Datepicker options    
$(document).ready(function(){        
    $('#<%= ViewData.Model.name %>_DatePickerCalendar_<%= ViewData.Model.sector      %>').datepicker({
        changeYear: true,
        changeMonth: true,
        clearText: '',
        closeText: '',
        currentText: '',
        prevText: '«',
        nextText: '»',
        dateFormat: 'dd/mm/yy',         
        firstDay: 1,
        numberOfMonths: 2,
        minDate: 0,
        <% if(Model.name == "Flight") { %>
            maxDate: '+16m',
        <% } else { %>
            maxDate: new Date(<%=Model.maxDate.Year %>, <%=Model.maxDate.Month %> - 1,        <%=Model.maxDate.Day %>),
        <% } %>
        mandatory: true,
        showOn: 'both', 
        buttonImage: '/images/icons/ico-calendar.gif', 
        buttonImageOnly: true,
        buttonText: 'view calendar',
        changeFirstDay: false,            

            var date = new Date();
            if (sDate.value != "") 
                date = $.datepicker.parseDate('dd/mm/yy', sDate.value); 
            cbBeforeShow(date, '<%= ViewData.Model.name %>', '<%= ViewData.Model.sector %>', '<%= ConfigurationSettings.AppSettings["FutureAvailabilityYears"]%>');                               
        },
        beforeShowDay: cbCheckDayAvailable,            
        onChangeMonthYear: function(year, month, inst) {
            <%--/*
                When displaying multiple months with a set maxDate setting, and you   select the last month
                datepicker shows the max month last, this causes GetAvailability to not query the correct months
                changing the selected month to the previous means the correct availability is retrieved
            */--%>
            if (typeof inst.settings.maxDate === "object" &&
                month == (inst.settings.maxDate.getMonth() + 1) && 
                year == inst.settings.maxDate.getYear()) {
                month--;
            } 
            cbChangeMonthYear(year, month, '<%= ViewData.Model.name %>', '<%= ViewData.Model.sector %>', '<%= ConfigurationSettings.AppSettings["FutureAvailabilityYears"]%>')
        },                        
    <% } else { %>

        beforeShowDay: function(sDate) {
            cbCheckGreaterThanDateOut('<%= ViewData.Model.name %>'); 
        },
        beforeShowDay: function() {
            return [true, _gDatePickerCalendar.availDayClass ]
        },            
        onChangeMonthYear: null,

    <% } %>

        onClose: function(sDate) {
            cbOnClose('<%= ViewData.Model.name %>', '<%= ViewData.Model.name %>', '<%= ViewData.Model.sector %>');
        },              
        onSelect: function(sDate) {                
            cbOnSelect(sDate, '<%= ViewData.Model.name %>', <%= ViewData.Model.sector %>);                
        },
        defaultDate: new Date('15 October 2012')       
    });       
});
这是GetAvailability方法中的ajax调用

$.ajax({
        url: _gDatePickerCalendar.availUrl,
        dataType: "json",
        async: false,
        success: function(data) {
            $.each(data, function(i, item) {
                if (item.date != "") {

                    var date = new Date(item.date.substring(6, 10), item.date.substring(3, 5) - 1, item.date.substring(0, 2));
                    _gDatePickerCalendar.availDays[i] = date;
                }
            });
        },
        complete: function() {
            var dd = new Date();
            alert("Just about to get a date from the array");
            dd = _gDatePickerCalendar.availDays[0];
            alert(dd);                                
        }
    });

很抱歉粘贴了这么多代码,但我真是束手无策:(

您可以通过在
beforeShow
活动上调用jQueryUI日历的方法来实现这一点

beforeShow: function(input, inst) { 
    $(this).datepicker( "setDate" , new Date('01-01-2013'));
}
工作示例:
更新:

这些都是不正确的

1,
var-date=新日期(item.date.substring(6,10),item.date.substring(3,5)-1,item.date.substring(0,2));
它应该是

var date = new Date(item.date);
请将它作为“yy/mm/dd”从您的服务器方法中传递。它应该适用于美国和英国地区

这是什么?
setTimeout('$(“#ui datepicker div”)”,800)
。setTimeout的签名是

  • 还有这个

    var dd=新日期();
    警报(“即将从数组中获取日期”);
    dd=_gDatePickerCalendar.availDays[0]

  • 这永远不会确保dd是日期对象。

    你离得很近,只是有点耐心:)

    你好,纳文,谢谢你的回复。当我单击您示例中的图标时,日历仍然显示2012年3月12日。文本框显示了正确的日期,但日历本身没有显示。请在javascriptNaveen中删除
    defaultDate
    后重试,代码与原始帖子中的代码相同,不包括-defaultDate:new date('2012年10月15日')一行。我现在有了日期-document.getElementById('?????).价值=日期;在这段代码中如何设置value属性,因为id属性是动态生成的。非常感谢
    var date = new Date(item.date);