2016-02-26 58 views
0

將需要幫助的聲明如下:如果在提交日期聲明

它的表格提交日期,而不是一個必填字段。

我該如何提交沒有任何價值? ,因爲目前我無法在日期欄中提交沒有值的表單。

謝謝

function ABC_StringIsDateFormatddMMyyyy(str) { 
    if (str.length != 8) { 
     return false; 
    } 
    var strYear = str.substring(4, 8); 
    var strMonth = str.substring(2, 4); 
    var strDay = str.substring(0, 2); 
    if (isNaN(strYear)) { 
     return false; 
    } 
    if (isNaN(strMonth)) { 
     return false; 
    } 
    if (isNaN(strDay)) { 
     return false; 
    } 

    var d = new Date(); 
    d.setFullYear(strYear, parseInt(strMonth) - 1, strDay); 
    strYear = d.getFullYear(); 
    strMonth = d.getMonth() + 1; 
    strMonth = "00" + strMonth; 
    strMonth = strMonth.substring(strMonth.length - 2, strMonth.length); 
    strDay = d.getDate(); 
    strDay = "00" + strDay; 
    strDay = strDay.substring(strDay.length - 2, strDay.length); 
    var tmp = strDay + strMonth + strYear; 
    if (str != tmp) { 
     return false; 
    } 
    return true; 
} 

回答

0

返回true如果該字段爲空。

function ABC_StringIsDateFormatddMMyyyy(str) { 
    if (str.length == 0) { 
     return true; 
    } 
    if (str.length != 8) { 
     return false; 
    } 
    var strYear = str.substring(4, 8); 
    var strMonth = str.substring(2, 4); 
    var strDay = str.substring(0, 2); 
    if (isNaN(strYear)) { 
     return false; 
    } 
    if (isNaN(strMonth)) { 
     return false; 
    } 
    if (isNaN(strDay)) { 
     return false; 
    } 

    var d = new Date(); 
    d.setFullYear(strYear, parseInt(strMonth) - 1, strDay); 
    strYear = d.getFullYear(); 
    strMonth = d.getMonth() + 1; 
    strMonth = "00" + strMonth; 
    strMonth = strMonth.substring(strMonth.length - 2, strMonth.length); 
    strDay = d.getDate(); 
    strDay = "00" + strDay; 
    strDay = strDay.substring(strDay.length - 2, strDay.length); 
    var tmp = strDay + strMonth + strYear; 
    if (str != tmp) { 
     return false; 
    } 
    return true; 
} 
+0

很棒的Mr. Barmar。 – Alson

+0

面臨另一個問題,如果客戶在將來的日期無效,我怎麼能提示錯誤?例如:今天2月26日,必須在今天晚些時候把關鍵的價值放在今天。意思是今天26二月,你不能在27日後輸入日期。請幫忙 !!而你是真棒 – Alson

+0

http://stackoverflow.com/questions/18712899/check-whether-the-date-entered-by-the-user-is-current-date-or-the-future-date – Barmar