Javascript jquery中的日期选择器未第二次加载
我的页面中有一个Javascript jquery中的日期选择器未第二次加载,javascript,jquery,html,datepicker,Javascript,Jquery,Html,Datepicker,我的页面中有一个日期选择器,还有两个单选按钮,如下所示 <input type="radio" name="radio1" value="radio1" checked> Radio 1 <input type="radio" name="radio2" value="radio2" >Radio 2 收音机1 第二台 我的日期选择器html是: <input type="text" id="mydatepicker"
日期选择器
,还有两个单选按钮,如下所示
<input type="radio" name="radio1" value="radio1" checked> Radio 1
<input type="radio" name="radio2" value="radio2" >Radio 2
收音机1
第二台
我的日期选择器html是:
<input
type="text"
id="mydatepicker"
aria-controls="sample_1"
class="form-control input-small input-inline" >
$('#mydatepicker').datepicker({
format: 'dd/mm/yyyy',
beforeShowDay: EnableDisableDates
});
function EnableDisableDates(date) {
var formattedDate = $.datepicker.formatDate('dd/mm/yy', date);
if ($("#radio1").is(':checked') == false) {
if (date < Date.parse('11/23/2015'))
return {enabled: false};
}
else {
return [true];
}
}
<input type="radio" class="radio1" name="radio1" value="radio1" checked> Radio 1
<input type="radio" class="radio1" name="radio1" value="radio2" >Radio 2<input
type="text"
id="mydatepicker"
aria-controls="sample_1"
class="form-control input-small input-inline" >
我的JS代码是:
<input
type="text"
id="mydatepicker"
aria-controls="sample_1"
class="form-control input-small input-inline" >
$('#mydatepicker').datepicker({
format: 'dd/mm/yyyy',
beforeShowDay: EnableDisableDates
});
function EnableDisableDates(date) {
var formattedDate = $.datepicker.formatDate('dd/mm/yy', date);
if ($("#radio1").is(':checked') == false) {
if (date < Date.parse('11/23/2015'))
return {enabled: false};
}
else {
return [true];
}
}
<input type="radio" class="radio1" name="radio1" value="radio1" checked> Radio 1
<input type="radio" class="radio1" name="radio1" value="radio2" >Radio 2<input
type="text"
id="mydatepicker"
aria-controls="sample_1"
class="form-control input-small input-inline" >
$(“#mydatepicker”).datepicker({
格式:“dd/mm/yyyy”,
beforeShowDay:启用禁用日期
});
功能启用禁用日期(日期){
var formattedDate=$.datepicker.formattate('dd/mm/yy',date);
如果($(“#radio1”).是(':选中的')==false){
如果(日期
我想在2015年11月23日之前,在选择单选按钮1时显示所有日期,在选择单选按钮2时禁用日期
以上是我的设想
我的问题是:
第一次加载时,它对收音机1工作正常,即启用收音机1的所有日期
选择收音机2时,它不会调用datepicker中beforeShowDay属性的方法EnableDisableDates方法
我不知道它为什么不调用这个方法。请帮助我解决此问题。您可以使用minDate禁用日期,而不是手动丢失日期,这将影响性能: 试试这个: JS
$(function() {
$(".radio1").change(function () {
if($(".radio1:checked").val()=="radio2"){
$('#mydatepicker').datepicker('destroy');
$('#mydatepicker').datepicker({
format: 'dd/mm/yyyy',
minDate: '11/23/2015'
});
}else{
$('#mydatepicker').datepicker('destroy');
$('#mydatepicker').datepicker({
format: 'dd/mm/yyyy',
});
}
});
$('#mydatepicker').datepicker({format: 'dd/mm/yyyy'});
});
HTML:
<input
type="text"
id="mydatepicker"
aria-controls="sample_1"
class="form-control input-small input-inline" >
$('#mydatepicker').datepicker({
format: 'dd/mm/yyyy',
beforeShowDay: EnableDisableDates
});
function EnableDisableDates(date) {
var formattedDate = $.datepicker.formatDate('dd/mm/yy', date);
if ($("#radio1").is(':checked') == false) {
if (date < Date.parse('11/23/2015'))
return {enabled: false};
}
else {
return [true];
}
}
<input type="radio" class="radio1" name="radio1" value="radio1" checked> Radio 1
<input type="radio" class="radio1" name="radio1" value="radio2" >Radio 2<input
type="text"
id="mydatepicker"
aria-controls="sample_1"
class="form-control input-small input-inline" >
收音机1
第二台
更新:
我们已经使用destroy创建了datepicker的新实例
见此我面临着类似的问题。在我的例子中,它是一个下拉列表,根据下拉列表,我在日期选择器中禁用了某些天。这是为了我所做的改变。但对于第二个变化,它不起作用 最后我得到的解决方案是datepicker('remove') 因此,只需在change函数中添加一行代码就可以了
$('#mydatepicker').datepicker('remove');
因此,您的代码应该如下所示:
$(".radio1").change(function () {
$('#mydatepicker').datepicker('remove');
if($(".radio1:checked").val()=="radio2"){
$('#mydatepicker').datepicker('destroy');
$('#mydatepicker').datepicker({
format: 'dd/mm/yyyy',
minDate: '11/23/2015'
});
}else{
$('#mydatepicker').datepicker('destroy');
$('#mydatepicker').datepicker({
format: 'dd/mm/yyyy',
});
}
}); 有一次,如果我破坏了日期选择器,它会显示所有的日期。销毁日期选择器后,未初始化任何内容。您是否检查了我的小提琴并单击了收音机这是正确的操作“我想在2015年11月23日之前显示选择单选按钮1的所有日期,我想禁用选择单选按钮2(单选按钮2)的日期()。”根据您的要求,您收到了吗?。我不会来的。我可以选择除12月7日禁用之外的所有日期。我使用的是chrome版本:34.0.1847.3。这有什么问题吗