1

我需要更改minDatejQuery 的datepicker的每个时间值#position#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
         });
     });
})
4

1 回答 1

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 -- 动态更改 minDate 和 maxDate

于 2014-11-15T23:27:24.517 回答