1

我想刷新一个日期选择器小部件。例如,如果用户按下“按钮 1”,日期选择器应该有一组特定的属性,而如果他按下“按钮 2”,日期选择器应该有一组不同的属性。

我怎样才能做到这一点?

一些概念验证代码可以在这里找到:http: //jsfiddle.net/5zyLg/1/

$("#booking_calendar").datepicker({ 
    autoSize: false, 
    dateFormat: 'dd/mm/yy',
    firstDay: 1,
    altField: "#date",
    altFormat: "yy-mm-dd",
    minDate: 0,
    maxDate: "2W"
 );

 // VIRTUAL CLICK EVENT GOES HERE

$("#booking_calendar").datepicker({ 
    autoSize: false, 
    dateFormat: 'dd/mm/yy',
    firstDay: 1,
    altField: "#date",
    altFormat: "yy-mm-dd",
    minDate: 0,
    maxDate: "3W"
 );
 $("#booking_calendar").datepicker("refresh");

^这是一般的想法,虽然它不起作用

4

3 回答 3

1

只需使用option命令更改设置

 $("#booking_calendar").datepicker('option', 'maxDate', '10W');

而不是使用 1 和 2 并在代码中创建if如果添加更多选项可能会变得复杂,而是使用data说明周数的属性

<div class="booking_search_cat lightgrey active" data-weeks="2W">
    <p>Group room</p>
</div>
<div class="booking_search_cat lightgrey" data-weeks="10W">
    <p>Lecture room</p>
</div>

并使用

 $("#booking_calendar").datepicker('option', 'maxDate', $(this).data('weeks') );

演示在 http://jsfiddle.net/gaby/5zyLg/2/

于 2013-05-02T13:02:32.023 回答
1

尝试“刷新”方法:http ://api.jqueryui.com/datepicker/#method-refresh

$( ".selector" ).datepicker( "refresh" );
于 2013-05-02T09:25:55.950 回答
0

您是否要刷新 datepicker 小部件或根据按钮按下为小部件设置不同的值?我假设基于按钮按下的不同值,因为你提到“日期选择器应该有一组属性”

在这种情况下使用

$( ".selector" ).datepicker( "setDate", "10/12/2012" );

参考:http ://api.jqueryui.com/datepicker/#method-setDate

于 2013-05-02T10:45:13.007 回答