Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript出生日期-防止选择2月30日等_Javascript_Date_Validation - Fatal编程技术网

Javascript出生日期-防止选择2月30日等

Javascript出生日期-防止选择2月30日等,javascript,date,validation,Javascript,Date,Validation,我对Javascript相当缺乏经验,但我正在尝试为注册过程创建这种保护,以防止用户选择一个不存在的日期,例如9月31日(闰年是2月29日的另一个问题,我将在后面研究) 目前我有这个,它只涉及二月: <select name="Day"> <option value="day">Day</option> <script type="text/javascript"> function printDays(y) { var x = 1;

我对Javascript相当缺乏经验,但我正在尝试为注册过程创建这种保护,以防止用户选择一个不存在的日期,例如9月31日(闰年是2月29日的另一个问题,我将在后面研究)

目前我有这个,它只涉及二月:

<select name="Day">
<option value="day">Day</option>
<script type="text/javascript">
function printDays(y) {
    var x = 1;
    while (x <= y) {
        document.write("<option value=" + x + ">" + x + "</option>");
        x++;
    }
}
window.onload=printDays(31);
</script>
</select>
<script type="text/javascript">
if (document.getElementById("month").value == feb) {
    printDays(28);
}
</script>

白天
功能打印天数(y){
var x=1;

虽然(x你总是可以使用一个插件来处理你的所有日期规则……/p>< p>我完全理解你的问题,但是考虑使用它来节省你的工作时间。”

答案已被接受-尽管使用日期选择器是个好主意,但它不会阻止已确定的用户(或禁用javascript的用户)返回无效值

部分解决方案是将输入的值转换为javascript日期,然后再转换回来。javascript日期的数据是1970年-但使用64位有符号值(即范围超过500000年)。请注意,在javascript中,月份编号为0-11


但这不能替代服务器端验证!

检查年、月、日组合是否正确

function checkDate(year, month, day) {
    try {
        var d = new Date(year, month, day);
        return !isNaN(d.getDate()) && d.getDate() == day;
    } 
    catch (e) {
        return false;
    } 
}

有没有一个插件,它做同样的事情,但仍然使用下拉框?有一些库可以处理上面提到的情况,但是记住,即使你做了js验证,也要在后端验证它。这看起来很完美,但是演示应该可以工作吗?如果你更改mon,day字段不会填充正确的数字第。。。