我需要在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}}
答案 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