1

我正在尝试使用自定义验证器通过 asp.net 中的两个下拉列表来验证月份和年份。但它不是动态运行的

<script language="javascript">
    function validateNumber(oSrc, args) {
        var month=document.getElementById('<%=ddlccExpirationMonth.ClientID %>').value;
        var year=document.getElementById('<%=ddlccExpirationYear.ClientID %>').value;
        if ((month<DateTime.Now.Year) || ((year == DateTime.Now.Year && month < DateTime.Now.Month)) 
        { 
            args.IsValid = false; 
        } else { 
            args.IsValid = true; 
        } 
    } 
</script> 
4

1 回答 1

0

你不能用DateTime.Now!它是 Javascript,而不是 C# !!!

使用这些值:

var today = new Date();
--var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();

if (year < yyyy || (year == yyyy && month < mm)) {
   ...
} else {
   ...
}

知道您为什么要这样做会很有趣:month<DateTime.Now.Year将一个月与一年进行比较!

从技术上讲,if仅仅设置一个布尔变量是浪费空间!

args.IsValid = !(year < yyyy || (year == yyyy && month < mm));
于 2013-08-07T15:46:29.897 回答