0

ドロップダウンでjavascriptを使用して、当月の最後の3か月(この合計4か月を含む)を表示しようとしています

function writeMonthOptions() {
    var months = new Array("01", "02", "03", "04", "05", "06", "07", "08",
            "09", "10", "11", "12");
    var today = new Date();
    var date = new Date(today);
    date.setFullYear(date.getFullYear() - 1);
    var dropDown = document.getElementById("Month_list");
    var i = today.getMonth();
    var optionNames;
    var optionValues;
    var beanData = '<s:property value="month" />';
    while (i < (today.getMonth() + 4)) {
        optionNames = months[i];
        optionValues = today.getFullYear() + '' + months[i];
        dropDown.options[i++] = new Option(optionNames, optionValues);
        if (beanData) {
            if (beanData == (today.getFullYear() + "" + monthsInd[today
                    .getMonth()])) {
                dropDown.selectedIndex = i - 1;
            }
        }
    }
}

シンプルに、現在の月と過去 3 か月のドロップダウンをビュー パーツに表示します。バックエンドにするには、[YYYYMM] として送信する必要があります。

Bean にすでに値が存在する場合は、ドロップダウンで選択されているように表示します。【4ヶ月以内であることを保証】

4

1 に答える 1

4

この関数はn、現在の月を含む過去の月を返します。

function getLastMonths(n) {

    var months = new Array();

    var today = new Date();
    var year = today.getFullYear();
    var month = today.getMonth() + 1;

    var i = 0;
    do {
        months.push(year + (month > 9 ? "" : "0") + month);
        if(month == 1) {
            month = 12;
            year--;
        } else {
            month--;
        }
        i++;
    } while(i < n);

    return months;

}

電話:

document.write(getLastMonths(4));

プリント:

201211,201210,201209,201208

デモ


次に、ドロップダウンボックス内にこれらの値を追加するのは非常に簡単です。

function writeMonthOptions() {   

   var optionValues = getLastMonths(4);
   var dropDown = document.getElementById("monthList");

   for(var i=0; i<optionValues.length; i++) {
       var key = optionValues[i].slice(4,6);
       var value = optionValues[i];
       dropDown.options[i] = new Option(value, key);
    }

}

使用するだけです:

writeMonthOptions();

完全な例

于 2012-11-12T12:22:38.223 に答える