有沒有辦法查看日期是否有效,而不使用驗證器?驗證日期而不使用驗證器?
我不能在這個實例中使用驗證器,這是一個很長的故事,太多的類型,但它與嵌套控件不能在JavaScript中找到。但是在插入日期之前,我想確保它在插入之前有效。有任何想法嗎?
我正在使用maskeditor,日期看起來像這樣"03/__/____"
,這會導致插入問題。
有沒有辦法查看日期是否有效,而不使用驗證器?驗證日期而不使用驗證器?
我不能在這個實例中使用驗證器,這是一個很長的故事,太多的類型,但它與嵌套控件不能在JavaScript中找到。但是在插入日期之前,我想確保它在插入之前有效。有任何想法嗎?
我正在使用maskeditor,日期看起來像這樣"03/__/____"
,這會導致插入問題。
您是否在尋找DateTime.TryParse?
DateTime dt;
bool isValid = DateTime.TryParse("03/__/____", out dt); // returns false
在客戶端,使用的onblur控件的調用javascript函數,即:
function makeDateValid(text)
{
//relevent js date formatting code
return validDateText;
}
</script>
,並在你的控制
<asp:TextBox ID="txtDate" runat="server"
onBlur="this.value=makeDateValid(this.value)" />
那麼你不」不需要用javascript找到控件。
儘管如此,你不應該相信這一點。您應該在服務器端進行驗證(DateTime.TryParse),並參數化您的值。
最穩定的方法是使用日曆控件,它將結果存儲在日期時間變量中,該日期時間變量定義爲「有效」,併爲任何目的生成各種格式化的字符串。
如果您需要使用編輯,則TryParse的替代方法是檢查字符串中是否有兩個正斜槓,然後執行一個字符串.Split。這將分別爲您提供三個元素,然後驗證每個元素(數組[0]> 0和< 13是數組[1]> 0和< 29,30,31,32)是否爲array [2]> = today.year和< today.year + 2等)
這樣,你不能只是報告一個無效的日期,而是報告日期的哪個部分是無效的,以及爲什麼。由於當您拒絕不符合業務規則的理論有效日期時,無疑會得到具體的結果,所以最好保持與用戶的一致性,並且儘可能具體地通過驗證。
使用以下javascript。然後,您可以禁用提交按鈕/鏈接,直到驗證通過。
function checkdateformat(userinput){
var dateformat = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
return dateformat.test(userinput) //returns true or false depending on userinput
}
此正則表達式例如從here
採取還檢查了這些其它實例/代碼:
http://www.the-art-of-web.com/javascript/validate-date/
http://www.rgagnon.com/jsdetails/js-0063.html
和一個jQuery插件: http://bassistance.de/jquery-plugins/jquery-plugin-validation/
我會給這個鏡頭 謝謝 – Eric 2009-12-04 22:59:57
我相信他的意思是客戶端 – 2009-12-04 21:00:46