javascript - JS中的日期函数,与设置的日期进行比较不起作用

标签 javascript asp.net validation

我必须在 ASP 中验证并检查用户是否未成年。因此,1998 年 1 月 7 日以下的任何人都属于未成年人。我有 3 个下拉列表来选择日期、月份和年份。我正在使用 JS。我尝试使用 concat 和 split 但它们不起作用。谁能帮忙解决这个问题吗?

function ValidateDate() {
    var dDay = document.getElementById('DateList');
    var dMonth = document.getElementById('MonthList');
    var dYear = document.getElementById('YearList');

    var day = dDay.selectedIndex;
    var month = dMonth.selectedIndex;
    var year = dYear.selectedIndex;

    var firstValue = year + month  + day;

    var setyear = "1998";
    var setmonth = "06";
    var setdate = "01";
    var secondValue = setyear + setmonth + setdate;

    var firstDate = new Date();
    firstDate.setFullYear(firstValue[0], (firstValue[1] - 1), firstValue[2]);

    var secondDate = new Date();
    secondDate.setFullYear(secondValue[0], (secondValue[1] - 1), secondValue[2]);

    if (firstDate > secondDate) {
        alert("Pass");
    }
    else {
        alert("Fail");
    }

}

 <asp:CustomValidator ID="CustomValidatorDate" runat="server" 
                        ErrorMessage=" You are underage" CssClass="error" Display="Dynamic" ClientValidationFunction="ValidateDate" ></asp:CustomValidator>

最佳答案

首先,您的日、月和年变量正在读取下拉列表的索引,而不是它们的值。

例如,您需要使用:

var day = dDay.value,
month = dMonth.value,
year = dYear.value;

然后创建日期对象为

var firstDate = new Date(year, month, day);

-迪彭

关于javascript - JS中的日期函数,与设置的日期进行比较不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25473134/

相关文章:

javascript - 使用 Highland.js 的异步 map

javascript - window.onbeforeunload 错误

c# - 下拉列表的问题

asp.net - IIS 8.0 ASP.NET 和错误 500.19

javascript - 即使验证失败也会提交表单

c# - 将文件从一台服务器复制到另一台服务器时设备未准备好

java - java检测目录是否被修改

node.js - 使用正则表达式进行序列化验证

ruby-on-rails - Rails 3验证IPv4和IPv6格式

javascript - 无法获取未定义或空引用的属性 'query'