jQuery datepicker在运行中设置选定的日期

时间:2009-03-03 13:56:03

标签: jquery-ui datepicker

如何动态动态更改jquery日期选择器的选定日期? 我说创建了一个内联日期选择器。 然后过了一段时间,我想在那里反映一个不同的日期而不从头开始重新创建日期选择器。

我尝试了setDate方法,但没有用,doc中没有太多文档。

还有另一个(扩展?)插件here,但我想使用jquery.ui.all.js附带的插件。

14 个答案:

答案 0 :(得分:168)

您使用的是哪个版本的jQuery-UI?我已经用1.6r6,1.7和1.7.1测试了以下内容并且它可以工作:

//Set DatePicker to October 3, 2008
$('#dateselector').datepicker("setDate", new Date(2008,9,03) );

答案 1 :(得分:27)

如果设置了minDate或maxDate选项,请检查您尝试将其设置的日期位于允许的日期范围内。

答案 2 :(得分:9)

此示例显示如何在下拉日历中使用默认值和文本框中的值。它还显示如何将默认值设置为上一个日期。

selectedDate是另一个保存日历控件当前所选日期的变量

    var date = new Date();
    date.setDate(date.getDate() - 1);

    $("#datepicker").datepicker({
        dateFormat: "yy-mm-dd",
        defaultDate: date,
        onSelect: function () {
            selectedDate = $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate'));
        }
    });

    $("#datepicker").datepicker("setDate", date);

答案 3 :(得分:7)

注意到Keith Wood(http://keith-wood.name/datepickRef.html)的DatePicker以下工作 - 注意默认日期的设置是最后一次:

    $('#datepicker').datepick({
        minDate: 0,
        maxDate: '+145D',
        multiSelect: 7,
        renderer: $.datepick.themeRollerRenderer,
        ***defaultDate: new Date('1 January 2008')***
    });

答案 4 :(得分:5)

出于某种原因,在某些情况下我无法使setDate工作。

我找到的解决方法是简单地更新给定输入的value属性。 当然,datepicker本身不会更新,但如果您只是要显示日期,它就可以正常工作。

var date = new Date(2008,9,3);
$("#your-input").val(date.getMonth()+"/"+date.getDate()+"/"+date.getFullYear());
// Will display 9/3/2008 in your #your-input input

答案 5 :(得分:3)

$('.date-pick').datePicker().val(new Date()).trigger('change')

最后,这就是我最近几个小时的样子!我需要进行初始更改,而不仅仅是在文本字段中设置日期!

答案 6 :(得分:2)

setDate似乎只是jquery UI中使用的内联日期选择器的问题,具体错误是InternalError:递归过多。

答案 7 :(得分:2)

这对我有用:

$("#dateselector").datepicker("option", "defaultDate", new Date(2008,9,3));

答案 8 :(得分:1)

这是一个旧线程,但我只是想提供一些我已经使用过的信息。如果您想设置今天的日期,您可以像下面一样简单地应用它。

 $("#datepickerid").datepicker("setDate", "0");

如果您想在当前日期之前/之后设置几天,请使用符号-/+符号表示您想要的天数。

 $("#datepickerid").datepicker("setDate", "-7");
 $("#datepickerid").datepicker("setDate", "+5");

答案 9 :(得分:0)

我也遇到了很多setDate方法的问题。似乎只适用于v1。然而,似乎有用的是使用dpSetSelected方法:

    $("#dateselector").dpSetSelected(new Date(2010, 0, 26).asString());
祝你好运!

答案 10 :(得分:0)

在HTML中,您可以使用以下日期选择器添加输入字段

<input class="form-control date-picker fromDates" id="myDate" type="text">

然后在Java脚本中,初始化日期选择器并将值设置为这样的日期,

$('.fromDates').datepicker({
                maxDate: '0',
                dateFormat: "dd/mm/yy",
                changeYear: true,
                changeMonth: true,
                yearRange: "-100:+0"
            });

var myDateVal = moment('${value}').format('DD/MM/YYYY');
$('#myDate').datepicker().datepicker('setDate', myDateVal );

(在此fromdate属性中显示当前日期的先前日期)

答案 11 :(得分:0)

var dt = new Date();
var renewal = moment(dt).add(1,'year').format('YYYY-MM-DD');
// moment().add(number, period)
// moment().subtract(number, period)
// period : year, days, hours, months, week...

答案 12 :(得分:0)

请在下面找到一个它对我设置数据功能有很大帮助

$('#datepicker').datepicker({dateFormat: 'yy-mm-dd'}).datepicker('setDate', '2010-07-25');

答案 13 :(得分:-1)

或者你可以简单地拥有

$('.date-pick').datePicker().val(new Date()).trigger('change')