2012-03-21 75 views
0

我有两个输入字段与date1和date2.Below这两个字段我需要一个按钮,当我按它,将创建一个输入字段的数目等于数字在两个日期字段之间的月份。 例如我有date1 = 2012-03-21和dat2 = 2012-06-21。它应该产生3个输入字段 你能帮我解决这个问题吗?JavaScript添加输入字段的数量等于月的数量

+0

这是一个非常有趣的问题。你在使用任何库吗? jQuery的? date.js? – Patricia 2012-03-21 19:11:03

回答

0

您可以根据日期的不同运行循环。在伪代码,它会像

var difference = month2 - month1; 

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

对我来说这将是非常有用的一个完整的答案,因为我不知道JavaScript非常好 – bizkit1 2012-03-21 19:16:06

+0

他将如何给你的代码帮助你学习? – jzworkman 2012-03-21 19:21:18

+0

请查看http://stackoverflow.com/questions/4944750/how-to-subtract-date-time-in-javascript或http://stackoverflow.com/questions/674721/how-do-i-subtract-分钟从JavaScript中的日期或http://www.javascriptkit.com/javatutors/datedifference.shtml或搜索谷歌的JavaScript日期扣除一吨的结果。 – 2012-03-21 19:22:26

1

假设的HTML看起来是这样的:

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

现在,一个月是不是几天的球衣号码(“30天内九月,四月,六月和十一月......“),所以我猜测日期部分没有关系。

然后,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; 
} 
+0

是的,它可以工作。非常感谢你! – bizkit1 2012-03-21 19:38:17

+0

一个问题,如果我添加不同的年份,它不会生成corect输入字段数。这个脚本可以修改,以计算是否我改变了一年?谢谢! – bizkit1 2012-03-22 07:08:08

+0

对,忘了。编辑代码...修正! – 2012-03-22 15:54:44