2017-09-18 2 views
0

Ich habe zwei Datepicker (Materialisecss) eine für das Check-in-Datum und eine andere für Check-out-Datum. Was ich will ist, dass ich das Check-out-Datum min Datum ist 1 Tag vor dem Check-in Datum. Ich habe diesen Code auf Pickadate js, aber das Problem ist das ausgewählte Datum auf dem ersten Datepicker ist am Ende Datepicker aktiviert. Was ich will, ist geschehen, wenn ich 2017.09.22 wählen, sollte das Mindest Datum am Ende picker 2017.09.23 seinepickadate: Enddatum sollte 1 Tag vor dem Startdatum sein

$('#dp_ci').pickadate(
    { 
     selectMonths: true, // Creates a dropdown to control month 
     today: 'Today', 
     clear: 'Clear', 
     close: 'Ok', 
     min: new Date() 
     }); 


    var from_$input = $('#dp_ci').pickadate(), 
    from_picker = from_$input.pickadate('picker') 

    var to_$input = $('#dp_co').pickadate(), 
    to_picker = to_$input.pickadate('picker') 


    // Check if there’s a “from” or “to” date to start with. 
    if (from_picker.get('value')) 
    { 
     to_picker.set('min', from_picker.get('select')) 
    } 
    if (to_picker.get('value')) 
    { 
     from_picker.set('max', to_picker.get('select')) 


    } 
    // When something is selected, update the “from” and “to” limits. 
    from_picker.on('set', function(event) 
    { 

     if (event.select) 
     { 
     to_picker.set('min', from_picker.get('select'))  
     } 

     else if ('clear' in event) 
     { 
     to_picker.set('min', false) 
     } 

    }) 

    to_picker.on('set', function(event) 
    { 
     if (event.select) 
     { 
     from_picker.set('max', to_picker.get('select')) 
     } 
     else if ('clear' in event) 
     { 
     from_picker.set('max', false) 
     } 
    }) 

Antwort

0
$('#dp_ci').pickadate(
    { 
     selectMonths: true, // Creates a dropdown to control month 
     today: 'Today', 
     clear: 'Clear', 
     close: 'Ok', 
     min: new Date() 
     }); 




    var from_$input = $('#dp_ci').pickadate(), 
    from_picker = from_$input.pickadate('picker') 

    var to_$input = $('#dp_co').pickadate(), 
    to_picker = to_$input.pickadate('picker') 


    // Check if there’s a “from” or “to” date to start with. 
    if (from_picker.get('value')) 

    {   
     var today = new Date($('#dp_ci').val()); 
     today.setDate(today.getDate() + 1) 
     to_picker.set('min', today) 
    } 
    if (to_picker.get('value')) 
    { 
     var today = new Date($('#dp_co').val()); 
    today.setDate(today.getDate() - 1) 
     from_picker.set('max', today) 


    } 
    // When something is selected, update the “from” and “to” limits. 
    from_picker.on('set', function(event) 
    { 

     if (event.select) 
     { 
     var today = new Date($('#dp_ci').val()); 
    today.setDate(today.getDate() + 1) 
     to_picker.set('min', today)  
     } 

     else if ('clear' in event) 
     { 

     to_picker.set('min', false) 
     } 

    }) 

    to_picker.on('set', function(event) 
    { 
     if (event.select) 
     { 
     var today = new Date($('#dp_co').val()); 
    today.setDate(today.getDate() - 1) 
     from_picker.set('max', today) 
     } 
     else if ('clear' in event) 
     { 

     from_picker.set('max', false) 
     } 
    }) 

ich heute Variable hinzugefügt (leider nicht in der Lage war, ändere den Namen nicht mehr :)

Verwandte Themen