2013-08-07 42 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