在Javascript中为用户输入日期添加天数

时间:2014-09-17 21:29:57

标签: javascript html forms date datepicker

因此,我试图在Javascript中制作日期计算器。我对Javascript相当陌生,所以我觉得我有点深入潜水,但这是我想要完成的事情的概述。

这是一个小伙伴:http://jsfiddle.net/b52hamw7/2/

我首先在HTML格式中创建了一个格式如下:

<form>
   <p class="instructions">I need my items by:</p><br>
   <input type="date" name="date" value="" id="date"/>
   <input type="button" value="Submit" id="submit">
</form>
<p>Be sure to order by:</p><p id="dateoutput"></p>

这里的想法是,用户将在表单中输入日期,然后javascript代码将添加10天,并输出他们需要订购的日期,格式化为日期。

这是我到目前为止的剧本,我知道它并不接近工作,但我认为这是一个开始:

<script>
document.getElementsByName("submit").onclick = function() {
  var dateIn = document.getElementsById("date").value;
  var addDays = 10;
  var dateOut = dateIn + addDays; 
};

document.getElementById("dateoutput").innerHTML = dateOut;
</script>

我非常感谢你能给我这个方向的任何方向。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您的代码中存在多个拼写错误和问题。我将在下面列出其中一些,以帮助您走上正确的轨道。

1)您的专家document.getElementsByName("submit").onclick....正在尝试搜索您的HTML中没有name="submit"的元素。

2)下一行var dateIn = document.getElementsById("date").value;有拼写错误,应该是:document.getElementById("date").value。你有一个额外的's'。

3)行document.getElementsById("dateoutput").innerHTML = dateOut;有3个问题。首先,你有额外的's',如上面的第2点。其次,您试图将innerHTML分配给您已丢失范围的变量值。最后,它不会在click函数的上下文中执行,并且在解析时立即执行,而不是在click事件发生时执行。因此,需要在onclick处理函数中移动它。

4)关于添加日期的日期。请查看Add days to JavaScript Date。现在,您正在尝试将10添加到您从input元素中提取的字符串值,该值简单地将字符串'10'连接到日期字符串的末尾。您需要将其转换为日期对象,然后添加10天。这在提供的链接中的代码示例中进行了解释