Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery中的日期选择器未第二次加载_Javascript_Jquery_Html_Datepicker - Fatal编程技术网

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。这有什么问题吗