Javascript日/月/年的形式
Javascript day/month/year into form
本文关键字:Javascript 更新时间:2023-09-26
我想让月,日和年被自动选择的形式。我相信这很简单,但我对Javascript很不熟悉。在下面的代码中,月份选择工作正常,但日期总是实际日期的+1,而年份根本不起作用。如果有人能帮助它将非常感激!谢谢!
<form name="form" action="b.html" method="post">
<select id="month" name="month">
<option id="1" value="January">January</option>
<option id="2" value="February">February</option>
<option id="3" value="March">March</option>
<option id="4" value="April">April</option>
<option id="5" value="May">May</option>
<option id="6" value="June">June</option>
<option id="7" value="July">July</option>
<option id="8" value="August">August</option>
<option id="9" value="September">September</option>
<option id="10" value="October">October</option>
<option id="11" value="November">November</option>
<option id="12" value="December">December</option>
</select>
/
<select id="day" name="day">
<option id="1" value="1">1</option>
<option id="2" value="2">2</option>
<option id="3" value="3">3</option>
<option id="4" value="4">4</option>
<option id="5" value="5">5</option>
<option id="6" value="6">6</option>
<option id="7" value="7">7</option>
<option id="8" value="8">8</option>
<option id="9" value="9">9</option>
<option id="10" value="10">10</option>
<option id="11" value="11">11</option>
<option id="12" value="12">12</option>
<option id="13" value="13">13</option>
<option id="14" value="14">14</option>
<option id="15" value="15">15</option>
<option id="16" value="16">16</option>
<option id="17" value="17">17</option>
<option id="18" value="18">18</option>
<option id="19" value="19">19</option>
<option id="20" value="20">20</option>
<option id="21" value="21">21</option>
<option id="22" value="22">22</option>
<option id="23" value="23">23</option>
<option id="24" value="24">24</option>
<option id="25" value="25">25</option>
<option id="26" value="26">26</option>
<option id="27" value="27">27</option>
<option id="28" value="28">28</option>
<option id="29" value="29">29</option>
<option id="30" value="30">30</option>
<option id="31" value="31">31</option>
</select>
/
<select id="year" name="year">
<option id="2012" value="2012">2012</option>
<option id="2013" value="2013">2013</option>
<option id="2014" value="2014">2014</option>
<option id="2015" value="2015">2015</option>
<option id="2016" value="2016">2016</option>
<option id="2017" value="2013">2017</option>
<option id="2018" value="2014">2018</option>
<option id="2019" value="2015">2019</option>
<option id="2020" value="2016">2020</option>
</select>
<script>
var d = new Date();
var month = d.getMonth();
var day = d.getDate();
var year = d.getFullYear();
document.form.month[month].selected = month;
document.form.day[day].selected = day;
document.form.year[year].selected = year;
</script>
</form>
您有冲突的id !id是页面上的奇异值。Selected是一个布尔值,您正在将其设置为一个数字。
去掉id,
var d = new Date();
var month = d.getMonth();
var day = d.getDate();
var year = d.getFullYear();
document.form.month.options[month].selected = true;
document.form.day.options[day-1].selected = true;
document.form.year.options[year-2012].selected = true;
代码:
var day = d.getDate();
...
document.form.year[year].selected = true;
应该var day = d.getDate()-1;
...
document.form.year[year - 2012].selected = true;
日期必须减去1,因为这一部分:document.form.day[day]
是一个数组,记住数组是从0开始的,但getDate()
是从1开始的。
为什么月的部分不需要减去1 ?因为JavaScript日期对象的月索引以0开头!
查看我的工作解决方案:http://jsfiddle.net/powtac/gVWrz/7/
document.form.month[month].selected = true;
document.form.day.value = day;
document.form.year.value = year;
select-element中的选项由一个从[0]开始的索引访问。
导致:
document.form.month[0].value is 'January'
document.form.day[0].value is 1;
document.form.year[0].selected is 2012;
确保正确计算索引或使用项目的值作为索引:
var year = d.getFullYear();
document.getElementById('year').value = year;
请从选项中删除"id"属性。在一个文档中使用两次相同的id是不好的做法。这应该是唯一的元素 .
您正在尝试通过各自的索引访问元素。当您访问month时,它将显示正确的月份,这是一个巧合,因为getMonth()
返回1月份的0
。当您选择第三个月(index=2)时,它正确地选择March作为具有index=2
的元素。
日期和年份,我把你的代码改为.value
。您不能对月份执行此操作,因为您使用的值是January、February、March等,而不是它们的索引。
<script>
var d = new Date();
var month = d.getMonth();
var day = d.getDate();
var year = d.getFullYear();
document.form.month.options[month].selected = true;
document.form.day.value = day;
document.form.year.value = year;
</script>
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- Javascript生成的表单未提交
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量