我正在创建注册,我需要获取用户出生日期,我的问题是,如何在html中创建月,年和日的下拉框,然后再处理那些日子到一个PHP脚本,将其插入数据库?月份,年份和日期应该有一个月的有效日期?日期,月份和年份下拉框
0
A
回答
4
编辑:
如何:
<select name="year"></select>
<select name="month">
<option value="1">January</option>
...
</select>
<select name="day"></select>
而且JS部分:
var ysel = document.getElementsByName("year")[0],
msel = document.getElementsByName("month")[0],
dsel = document.getElementsByName("day")[0];
for (var i = 2000; i >= 1950; i--) {
var opt = new Option();
opt.value = opt.text = i;
ysel.add(opt);
}
ysel.addEventListener("change", validate_date);
msel.addEventListener("change", validate_date);
function validate_date() {
var y = +ysel.value, m = msel.value, d = dsel.value;
if (m === "2")
var mlength = 28 + (!(y & 3) && ((y % 100)!==0 || !(y & 15)));
else var mlength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][m - 1];
dsel.length = 0;
for (var i = 1; i <= mlength; i++) {
var opt = new Option();
opt.value = opt.text = i;
if (i == d) opt.selected = true;
dsel.add(opt);
}
}
validate_date();
我将让你在PHP的一部分工作。
几个注意事项:
- 我用
addEventListener
。请记住,IE < 9使用attachEvent
代替。您可以使用onchange
属性(不建议使用)或依赖jQuery等一些JS框架来完成这项工作:$(msel).change(validate_date);
。 - 在旧版本的Firefox中,
add
方法的<select>
元素很愚蠢,需要第二个参数null
。 - 当脚本计算
mlength
二月,它增加了一个布尔值(一个简单的检查为闰年),这是铸造为0或1,至28。这就提出了在ECMAScript中5严格模式和异常。
+0
如何以mm和dd格式转换日期和月份。对于月份我需要01-12在期权价值和日期我需要01-31在期权价值。 –
1
只要给他们一个纯文本输入。如果你不相信人们通过打字正确输入他们的生日,为什么使用select元素会有所作为?只要告诉他们你期望的格式。
例如
<script>
function validateDate(v) {
var bits = v.split('/');
var d = new Date(bits[2], --bits[1], bits[0]);
return d.getFullYear() == bits[2] && d.getMonth() == bits[1];
}
function validateForm(form) {
if (!validateDate(form.birthday.value)) {
alert('Birthday date is not a valid date');
return false;
}
}
</script>
<form onsubmit="return validateForm(this);" action="">
<div>Birthday (day/month/year): <input type="text" name="birthday">
<input type="submit">
</div>
</form>
您可以包括脚本verison替换与选择普通的输入,但是覆盖在合理期限你必须在今年选择约100项,那么你就需要等待,直到他们都选择一年和一个月才能投入日子。至少上面给出了一个验证日期的简单算法。
+0
只是喜欢开车倒推票。如果您不准备通过评论来支持您的投票,它将被忽略。 – RobG
相关问题
- 1. 日期选择与日期,月份和年份单独的框
- 2. 月份和年份的日期转换
- 3. 添加年份,月份和日期C
- 4. 计算月份和年份的日期
- 5. 获取系统日期和分割日期,月份和年份
- 6. LINQ如何按日期分组日期和月份和年份
- 7. 显示日期,月份和年份代替当前的日期,月份和年份
- 8. datetime groupby/resample不同年份的月份和日期(下降年份)
- 9. 日期格式为UTC月份日期和年份(MMM DD,YYYY)
- 10. Ember日期获得月份,年份和日期
- 11. 从特定日期获取日期,月份和年份
- 12. JAVA如何取日期并查看日期,月份和年份?
- 13. 从给定日期获取月份,日期和年份
- 14. mysql:按年份和月份(无日期)如何做日期
- 15. 大于指定日期(日期,月份,年份)的日期
- 16. 如何获得当前日期,月份,年份在斯卡拉
- 17. 月份和年份查看日历
- 18. 带月份和年份的不带日期的日历
- 19. 月份和年份的有效期限
- 20. 如何在给定年份和月份的星期日期PHP
- 21. 使用.NET比较日期与星期,月份和年份
- 22. 如何在xts中将数字年份月份转换为年份 - 月份 - 日期日期格式?
- 23. 从两个相应的下拉列表中选择月份和年份的日期和日期
- 24. javascript月份和日期和年份检查
- 25. 日期范围查询忽略月份年份结束和年份开始
- 26. 以日期,月份,年份获取不同的ISO日期
- 27. 从日期,月份,年份的最新日期
- 28. 检索日期,月份,年份从日期在PHP
- 29. 的JavaScript生成年份和月份的下拉列表中
- 30. jQuery UI Datepicker - 月份和年份下拉列表
有一个例子[这里](http://www.plus2net.com/php_tutorial/date-selection.php),告诉你该怎么做。 –