“刷新”JQuery datepicker小部件

时间:2013-05-02 09:23:52

标签: javascript jquery

我想刷新一个datepicker小部件。如果用户按下例如“按钮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");

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

3 个答案:

答案 0 :(得分:1)

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

$( ".selector" ).datepicker( "refresh" );

答案 1 :(得分:1)

只需使用option command更改设置

即可
 $("#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/

答案 2 :(得分:0)

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

在这种情况下使用

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

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