【问题标题】:Jquery Datepicker does not fire for the second timeJquery Datepicker第二次没有触发
【发布时间】:2014-02-26 06:07:36
【问题描述】:

所以我有这个代码

$('#apply').datepicker({
    changeMonth: true, changeYear: true,
    dateFormat: "dd-mm-yy",

    onClose: function(selectedDate){
       $('#last').prop('disabled', false);
       $('#last').datepicker('destroy');
       var formatted = selectedDate.split('-');
       var new_date = formatted[1]+"/"+formatted[0]+"/"+formatted[2];
       $('#last').datepicker({
         dateFormat: "dd-mm-yy",           
         minDate: (function(){                 
            var min = new Date(new_date); 
            min = $('#apply').datepicker('getDate');
            var newmin = new Date(new_date);
             newmin.setDate(min.getDate()+121);
            return newmin;
         })(),
         maxDate:(function(){
            var min = new Date(new_date);
             min = $('#apply').datepicker('getDate');
            var newmin = new Date(new_date);
            newmin.setDate(min.getDate()+129);
            return newmin;

         })(),

       });


    }

});

问题是我的日期 #apply 日期选择器不会第二次触发,(第一次单击文本框,日期选择器将显示,单击外部然后单击文本框日期选择器 woukd 再次没有显示)为什么会这样?你能帮帮我吗?

这是一个JSFIDDLE DEMO,可以帮助你理解我的问题

谢谢,

【问题讨论】:

  • 在提琴手中它工作正常
  • @monu 第一个文本框?它对我不起作用。先单击它,然后单击它外部,然后尝试再次单击它

标签: javascript jquery datepicker


【解决方案1】:

此行导致错误,

min = $('#apply').datepicker('getDate');

更新 fiddle

如果您没有先选择日期。 min 将为空。这将导致

中的错误
newmin.setDate(min.getDate()+121);

【讨论】:

  • 你能解释一下为什么会这样吗?
【解决方案2】:

您需要对 min 进行 null 检查,因为如果您没有选择任何日期,“getdate”将返回 null

 onClose: function(selectedDate){
           $('#last').prop('disabled', false);
           $('#last').datepicker('destroy');
           var formatted = selectedDate.split('-');
           var new_date = formatted[1]+"/"+formatted[0]+"/"+formatted[2];
           $('#last').datepicker({
             dateFormat: "dd-mm-yy",           
             minDate: (function(){                 
                var min = new Date(new_date); 
                min = $('#apply').datepicker('getDate');
                var newmin = new Date(new_date);
                  if(min != null)
                 newmin.setDate(min.getDate()+121);
                return newmin;
             })(),
             maxDate:(function(){
                var min = new Date(new_date);
                 min = $('#apply').datepicker('getDate');
                var newmin = new Date(new_date);
               if(min != null)
                newmin.setDate(min.getDate()+129);
                return newmin;

             })(),

           });

http://jsfiddle.net/DHyPe/22/

【讨论】:

    猜你喜欢
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多