javascript添加等于月数的输入字段数

时间:2012-03-21 19:05:38

标签: javascript

我有两个输入字段,其中包含date1和date2.Below这两个字段我需要一个按钮,当我按下它时,将创建一些输入字段,等于2个日期字段之间的月数。 例如,我有date1 = 2012-03-21和dat2 = 2012-06-21。它应该生成3个输入字段  你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

我们假设HTML看起来像这样:

<div id="dateRange">
    <input type="text" id="startDate">
    <input type="text" id="endDate">
</div>
<div id="monthlyEntries"/>

现在,一个月不是统一的天数(“30天有9月,4月,6月和11月......”),所以我猜测的日期部分约会并不重要。

然后,调用更改(或点击按钮,或其他)的javascript看起来像这样:

function buildMonthlyEntries() {
    var startDate = new Date(document.getElementById('startDate').value);
    var endDate = new Date(document.getElementById('endDate').value);
    if(startDate == "Invalid Date" || endDate == "Invalid Date") { return null; }
    var entryCount = (endDate.getMonth() + endDate.getFullYear()*12) - (startDate.getMonth() + startDate.getFullYear()*12);
    var monthlyEntries = document.getElementById('monthlyEntries');
    monthlyEntries.innerHTML = "";
    for(var i = 0; i < entryCount; i++) {
        var textElement = document.createElement('input');
        textElement.setAttribute('type', 'text');
        textElement.setAttribute('id', 'entry' + i);
        monthlyEntries.appendChild(textElement);
    }
    return null;
}

答案 1 :(得分:0)

您可以根据日期的差异运行循环。在伪代码中,它将类似于

var difference = month2 - month1;

for(x=0;x<difference,x++){
     add inputfield;
}