javascript验证英国日期

问题描述

| 我正在尝试使用我在网上找到的函数来验证格式为dd / mm / yyyy的日期,但出现此错误:\'输入为空\' 谁能告诉我我的语法哪里错误
if (validateDate($(\"#<%=StartDate.ClientID%>\")) == false) {
                alert(\"not date\");
            }
            else {
                alert(\"date\");
            }

function validateDate(dtControl) {
        var input = document.getElementById(dtControl)
        var validformat = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/ //Basic check for format validity
        var returnval = false
        if (!validformat.test(input.value))
            alert(\'Invalid Date Format. Please correct.\')
        else { //Detailed check for valid date ranges
            var dayfield = input.value.split(\"/\")[0]
            var monthfield = 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.\')
            else {
                returnval = true
            }
        }
        if (returnval == false) input.focus()
        return returnval
    } 
    

解决方法

您正在将jQuery对象输入validateDate函数中,当它带有字符串ID时。尝试将对象的ID输入到函数中。另外,DOM对象的值在函数内部使用,因此请确保其中包含日期:
if (validateDate(\"<%=StartDate.ClientID%>\") === false) {
    alert(\"not date\");
} else {
    alert(\"date\");
}
这是显示该代码工作版本的示例:http://jsfiddle.net/7WJYF/