javascript验证英国日期

时间:2011-05-25 15:20:31

标签: javascript

我正在尝试使用我在网上找到的函数验证dd / mm / yyyy格式的日期,但我收到此错误:'input is null'

有人能告诉我我的语法错在哪里吗?

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
    } 

1 个答案:

答案 0 :(得分:1)

当你接受一个字符串ID时,你会在validateDate函数中输入一个jQuery对象。尝试将对象的ID输入到函数中。此外,DOM对象的值在函数内部使用,因此请确保包含日期的内容:

if (validateDate("<%=StartDate.ClientID%>") === false) {
    alert("not date");
} else {
    alert("date");
}

以下示例显示了代码的工作版本:http://jsfiddle.net/7WJYF/