动态更改jQuery UI datepicker minDate

时间:2014-11-15 23:15:33

标签: jquery datepicker mindate

我需要在minDate#position的每个时间值更改时更改jQuery的#type minDate。目前,#position的值仅在#type.change()第一次唤起$("#position, #type").change(function(){ var pos = $("#position").val(); var type = $("#type").val(); var url = "getdate/"+type+"/"+pos; $.get(url, function(msg){ $('.date1').datepicker({ MinDate: msg }); }); }) 方法时才会更改。

我目前正在使用以下代码:

{{1}}

1 个答案:

答案 0 :(得分:3)

这是因为每次发生.datepicker事件时,您都会重新启动.change()方法。

取而代之的是,在课程datepicker上启动.date1一次,然后按如下方式更改MinDate

$('.date1').datepicker('option', 'minDate', msg);

所以这会产生:

// first initialise
$('.date1').datepicker({
     MinDate: msg
});

$("#position, #type").change(function(){
     var pos = $("#position").val();
     var type = $("#type").val();
     var url =  "getdate/"+type+"/"+pos;
     $.get(url, function(msg){
        // then change
        $('.date1').datepicker('option', 'minDate', msg);
     });
})

或者,您也可以按如下方式销毁.datepicker对象:

$('.date1').datepicker('destroy');

然后在您自己的代码中重新创建对象。如此结合,这将产生:

// first initialise
$('.date1').datepicker({
     MinDate: msg
});

$("#position, #type").change(function(){
     var pos = $("#position").val();
     var type = $("#type").val();
     var url =  "getdate/"+type+"/"+pos;
     $.get(url, function(msg){
        // first destroy
        $('.date1').datepicker('destroy');
        // then recreate
        $('.date1').datepicker({
           MinDate: msg
        });
     });
})

另外,请参考这个问题并回答:

jQuery DatePicker -- Changing minDate and maxDate on the fly