2016-08-01 2 views
0
nicht zurück

Immer noch versucht, JQuery zu bekommen. Nicht wirklich gut darin.Html-Kalender beim Laden gibt die Datenwerte für den Landemonat

Ich habe ein Problem mit HTML-Kalender. Alles in diesem Kalender funktioniert einwandfrei, außer dass der Kalender das erste Mal geladen wird. "Der Zielmonat gibt nicht die Werte für die belegten Daten zurück."

Wenn ich nach dem Ladevorgang andere Monate auswähle, kann ich die Daten sehen und sogar nach der erneuten Auswahl des Landemonats (erste Dropdownliste) können Daten dort gesehen werden, aber nur nicht beim ersten Laden. Hier

ist der Code:

var cal = new Calendar(); 

    var unavailable_days_month_1 = [1,2,3]; 
    var unavailable_days_month_2 = [4,5,6]; 
    var unavailable_days_month_3 = [7,8,9]; 
    var unavailable_days_month_4 = [10,11,12]; 
    var unavailable_days_month_5 = [13,14,15]; 
    var unavailable_days_month_6 = [16,17,18]; 
    var unavailable_days_month_7 = [19,20,21]; 
    var unavailable_days_month_8 = [22,23,24]; 
    var unavailable_days_month_9 = [25,26,27]; 
    var unavailable_days_month_10 = [28,29,30]; 
    var unavailable_days_month_11 = [2,4,31]; 
    var unavailable_days_month_12 = [7,9,11]; 

    var current_date = new Date(); 
    var current_month = (current_date.getMonth() + 1); 
    var current_year_month = (1900 + current_date.getYear()) + "-" + current_month; 
    tjq("#select-month").find("[value='" + current_year_month + "']").prop("selected", "selected"); 
    /* My problem starts from here. How can I return the dates value for landing calender month */ 
    cal.generateHTML(current_date.getMonth(), (1900 + current_date.getYear()), "unavailable_days_month_" + current_month); 
    tjq(".calendar").html(cal.getHTML()); 

    tjq("#select-month").change(function() { 
     var selected_year_month = tjq("#select-month option:selected").val(); 
     var year = parseInt(selected_year_month.split("-")[0], 10); 
     var month = parseInt(selected_year_month.split("-")[1], 10); 
     cal.generateHTML(month - 1, year, getUnavailDays(month)); 
     tjq(".calendar").html(cal.getHTML()); 
    }); 

     function getUnavailDays(month){ 
      if (month === 1) return unavailable_days_month_1; 
      if (month === 1) return unavailable_days_month_1; 
      if (month === 2) return unavailable_days_month_2; 
      if (month === 3) return unavailable_days_month_3; 
      if (month === 4) return unavailable_days_month_4; 
      if (month === 5) return unavailable_days_month_5; 
      if (month === 6) return unavailable_days_month_6; 
      if (month === 7) return unavailable_days_month_7; 
      if (month === 8) return unavailable_days_month_8; 
      if (month === 9) return unavailable_days_month_9; 
      if (month === 10) return unavailable_days_month_10; 
      if (month === 11) return unavailable_days_month_11; 
      if (month === 12) return unavailable_days_month_12; 

      return; 
     } 

Jeder Vorschlag würde geschätzt. Vielen Dank im Voraus.

+1

Sie durch Refactoring Code beginnen soll. Erwägen Sie, ein Array mit dem Namen unavailable_days_month zu erstellen, wobei der Index die Monatszahl ist. – Owen

Antwort

0

Ich hatte diese Änderungen vorgenommen:

var current_date = new Date(); 
var current_month = (current_date.getMonth() + 1); 
var current_year_month = (1900 + current_date.getYear()) + "-" + (current_date.getMonth() + 1); 
tjq("#select-month").find("[value='" + current_year_month + "']").prop("selected", "selected"); 
cal.generateHTML(current_date.getMonth(), (1900 + current_date.getYear()), getCurrMonth(current_month)); 
tjq(".calendar").html(cal.getHTML()); 

function getCurrMonth(current_month){ 
    if (current_month === 1) return unavailable_days_month_1; 
    if (current_month === 2) return unavailable_days_month_2; 
    if (current_month === 3) return unavailable_days_month_3; 
    if (current_month === 4) return unavailable_days_month_4; 
    if (current_month === 5) return unavailable_days_month_5; 
    if (current_month === 6) return unavailable_days_month_6; 
    if (current_month === 7) return unavailable_days_month_7; 
    if (current_month === 8) return unavailable_days_month_8; 
    if (current_month === 9) return unavailable_days_month_9; 
    if (current_month === 10) return unavailable_days_month_10; 
    if (current_month === 11) return unavailable_days_month_11; 
    if (current_month === 12) return unavailable_days_month_12; 

    return; 
} 
Verwandte Themen