2013-08-07 34 views
1

我想通过使用自定义验证程序的asp.net中的两个下拉列表来验证月份和年份。但它不是动态运行的无法使用jscript验证月份和年份

<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> 
+1

将该脚本块添加到您的问题中,以便更容易阅读我们所有人。 –

+0

您的自定义验证器服务器控件标记在哪里? –

回答

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,一个月有一年比较!

从技术上来说,仅仅设置一个bool变量if是浪费空间!

args.IsValid = !(year < yyyy || (year == yyyy && month < mm)); 
+0

哦,谢谢。但我有C#鳕鱼,它的工作如果((CardExpiryYear ”; lblUnSuccessful.Text + =“对不起!您的卡已过期
”; blnValid = false; } –

+0

对于C#代码,您需要将它包装在<%= and %> – Pluto

+0

您的C#代码中包含您的cs文件。但是那是JAVASCRIPT!正如冥王星写道:-) – xanatos