2013-05-25 67 views
0

我正在使用我的mvc 4應用程序。在這裏有Day,Month,Year下拉菜單來選擇出生日期。現在我想驗證所選月份和年份中的選定日期(特別是2月29日,28日和全月)。有沒有任何定義的jQuery或JavaScript的功能呢?在客戶端驗證選定月份和年份中的選定日期

請幫忙。

+0

你有沒有嘗試jQuery驗證插件。 – Saravanan

+0

我需要一種方法來驗證這些下拉菜單或重新基於月份/年選擇。 –

+0

您是否嘗試從下拉列表中構建日期,以便驗證日期。也讀過這篇文章:http://stackoverflow.com/questions/511439/custom-date-format-with-jquery-validation-plugin – Saravanan

回答

2
function isDate(txtDate) { 
    var currVal = txtDate; 
    if (currVal == '') 
     return false; 

    //Declare Regex 
    var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/; 
    var dtArray = currVal.match(rxDatePattern); // is format OK? 

    if (dtArray == null) 
     return false; 

    //Checks for dd/mm/yyyy format. 
    var dtDay = dtArray[1]; 
    var dtMonth = dtArray[3]; 
    var dtYear = dtArray[5]; 

    if (dtMonth < 1 || dtMonth > 12) 
     return false; 
    else if (dtDay < 1 || dtDay > 31) 
     return false; 
    else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31) 
     return false; 
    else if (dtMonth == 2) { 
     var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0)); 
     if (dtDay > 29 || (dtDay == 29 && !isleap)) 
      return false; 
    } 

    return true; 
} 

這將以這種格式「dd/MM/yyyy」工作。

+0

您正在使用jquery。 。因爲我在http://jsfiddle.net/9mx7K/18/中測試它對我的工作很好 –

+0

匹配是驗證正則表達式的基本方法。 –

+0

謝謝安娜,我修復了錯誤,解決方案對我來說工作得很好。非常感謝你。 –

0
<script type="text/javascript"> 

function checkdate(input){ 

var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity 
var returnval=false 
if (!validformat.test(input.value)) 
alert("Invalid Date Format. Please correct and submit again.") 
else{ 

var monthfield=input.value.split("/")[0] 
var dayfield=input.value.split("/")[1] 
var yearfield=input.value.split("/")[2] 
var dayobj = new Date(yearfield, monthfield-1, dayfield) 
if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield)) 
alert("Invalid Day, Month, or Year range detected. Please correct and submit again.") 
else 
returnval=true 
} 
if (returnval==false) input.select() 
return returnval 
} 

</script> 

我把這個函數叫做提交按鈕,你必須以mm/dd/yyyy格式將日期傳遞給這個函數。它會驗證所有日期。如果你面臨問題,然後PLZ回覆我。

+0

我已經通過'02/28/2013'作爲函數參數,但顯示驗證消息'日期格式無效。請修正並​​再次提交' –

+0

我的目標是驗證一個月內的任何無效日期(例如:如果我給'02/February/2013,那麼需要顯示'Invalid date selected') –

相關問題