2016-08-26 3 views
0

Wenn ich JQuerydatapickergetDate verwende, gibt es null zurück. Ich brauche zwei datepickers, die zweite sollte kleiner als die erste sein.jquery datepicker getdate return null

die JS-Datei ist wie folgt:

var d = new Date(); 
var month = d.getMonth()+1; 
var day = d.getDate(); 
var today = d.getFullYear() + '-' + 
    (month<10 ? '0' : '') + month + '-' + 
    (day<10 ? '0' : '') + day; 

var startDate; 
$(function() { 
    $("#start-date").datepicker({ 
     dateFormat: 'yy-mm-dd', 
     inline: true, 
     minDate:'2016-01-01', 
     maxDate:today, 
     }); 


    startDate =$("#start-date").datepicker("getDate"); 
    if(startSDate==null){ 
    startSDate = '2016-01-01' 
    } 

    $("#end-date").datepicker({ 
    dateFormat: 'yy-mm-dd', 
    inline: true, 
    minDate:startDate, 
    maxDate:today, 

     }); 
    }); 

Dies ist jedoch nicht funktioniert. Hier ist jsFiddle.

+1

zuweisen Was genau wollen Sie .. ?? Ich meine, bei Auswahl des ersten Kalenderdatums sollte der zweite Kalender automatisch das Mindestdatum als das im ersten Kalender ausgewählte Datum erhalten. – Vish

Antwort

2

Bitte verwenden Sie den folgenden Code.

'use strict'; 
var d = new Date(); 
var month = d.getMonth()+1; 
var day = d.getDate(); 
var today = d.getFullYear() + '-' + 
    (month<10 ? '0' : '') + month + '-' + 
    (day<10 ? '0' : '') + day; 
var fullSDate; 
$(function() { 
    $("#start-date").datepicker({ 
     dateFormat: 'yy-mm-dd', 
     inline: true, 
     minDate:'2016-05-12', 
     maxDate:today, 
     }); 

    $("#end-date").datepicker({ 
      dateFormat: 'yy-mm-dd', 
      inline: true, 
      minDate:fullSDate, 
      maxDate:today  
    }); 

    $("#end-date").focusin(function(){ 
     fullSDate =$("#start-date").datepicker("getDate"); 
     if(fullSDate==null){ 
      fullSDate = '2016-01-01' 
     } 
     $("#end-date").datepicker("option", "minDate", fullSDate); 

    });  
    }); 

Siehe diese Fiddle

1

es ist null, weil Sie startdate Variable bei erstem Mal, wenn Sie Ihre jquery Datei wird geladen und die Zeit zuweisen ist kein Datum in $ („# start-date“) Kontrolle, wenn Sie versuchen, Datum zu bekommen.

Sie sollten Ihre startdate Variable $ ("# start-date") .datepicker onselect Ereignis wie dieses

var startDate; 

    $("#start-date").datepicker({ 
    dateFormat: 'yy-mm-dd', 
    inline: true, 
    minDate:'2016-01-01', 
    maxDate:today, 
    onSelect: function() { 
     startDate =$("#start-date").datepicker("getDate"); 
    } 
    }); 

    $("#end-date").datepicker({ 
    dateFormat: 'yy-mm-dd', 
    inline: true, 
    minDate:startDate, 
    maxDate:today 
    });