2017-12-04 1 views
0

Derzeit kann ich Werte aus Optionsfeldern und Datum auswählen. Dann, wenn ich auf das Anker-Tag klicke, kann ich alle Daten auswählen, um eine URL zu bilden. Wenn ich jedoch die URL sehe, wird das Datum als undefiniert angezeigt. Der folgende jQuery-Code ist, was ich verwenden, um die Daten zu holen:Monat Drucke undefined in jquery

$("#dt1").datepicker({ 
    dateFormat: "dd-M-yy", 
    minDate: 0, 
    onSelect: function (date) { 
     var dt2 = $('#dt2'); 
     var startDate = $(this).datepicker('getDate','+1d'); 
     startDate.setDate(startDate.getDate()+1); 
     dt2.datepicker('option', 'minDate', startDate); 
     dt2.datepicker('setDate', startDate); 
    } 
}); 

$('#dt2').datepicker({ 
    dateFormat: "dd-M-yy",  
}); 

$("li#weskus").on('click', function() { 
    $(this).addClass('weskusClass'); 
    num = 1; 
    console.log(num); 
}); 

$('a#atributo').click(function() { 
    var monthNames = [ 
     "Jan", "Feb", "Mar", 
     "Apr", "May", "Jun", "Jul", 
     "Aug", "Sep", "Oct", 
     "Nov", "Dec" 
     ]; 

    var date1 = $("#dt1").datepicker('getDate'), 
     day_1 = date1.getDate(), 
     month_1 = date1.getMonth() + 1,    
     year_1 = date1.getFullYear(); 

    var date2 = $("#dt2").datepicker('getDate'), 
     day_2 = date2.getDate(), 
     month_2 = date2.getMonth() + 1,    
     year_2 = date2.getFullYear(); 

    var where_in = $('.date-example-container li.weskusClass span.value-in').text(); 

    var where = $('.date-example-container li.selected span.value').text(); 
    var people = $('#search-pax :selected').val(); 

    if(num == 1){ 
     $('a#atributo').attr("href", "http://www.lekkeslaap.co.za/akkommodasie-in/"+where_in+"?q="+where_in+"&start="+day_1+"+"+monthNames[month_1]+"+"+year_1+'&end='+day_2+'+'+monthNames[month_2]+'+'+year_2+'&pax='+people); 
     num = 0; 
    } 
    else if(num < 1){ 
     $('a#atributo').attr("href", "http://www.lekkeslaap.co.za/akkommodasie/"+where+"?q="+where+"&start="+day_1+"+"+monthNames[month_1]+"+"+year_1+'&end='+day_2+'+'+monthNames[month_2]+'+'+year_2+'&pax='+people); 
    } 

}); 

Here my running snippet so you can test.

+2

'Hier mein laufendes Schnipsel, damit Sie testen können .-> wo? –

+1

Ändern Sie Ihren Monatscode 'month_1 = date1.getMonth() + 1,' in 'memory_1 = date1.getMonth(),', da Ihr 'monthNames' Array 0 basiert und' getMonth() 'gibt 0 basierend auf dem Monatswert zurück. –

+0

Hatte vergessen, das Schnipsel hinzuzufügen, aber es gibt Stift –

Antwort

1

Ihre month_1 ändern und month_2 zu month_2 = date2.getMonth(), und month_2 = date2.getMonth(),. Javascript Datum Monat sind 0 basiert, d. Januar ist 0, Februar ist 1, und so weiter.

Also, für den Monat December, wird Ihr Monatswert 12 sein, aber monthNames Array ist 0 basiert, so dass die monthNames[month_1]undefined sein wird.

+0

Ich habe diesen Weg vor langer Zeit, so dass ich nicht einmal eine Ahnung habe, warum ich das Plus 1 hatte. Ihre Antwort ist genau richtig. –

+0

Froh, Ihnen zu helfen !! :) –