我正在尝试使用我在网上找到的函数验证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
}
答案 0 :(得分:1)
当你接受一个字符串ID时,你会在validateDate函数中输入一个jQuery对象。尝试将对象的ID输入到函数中。此外,DOM对象的值在函数内部使用,因此请确保包含日期的内容:
if (validateDate("<%=StartDate.ClientID%>") === false) {
alert("not date");
} else {
alert("date");
}
以下示例显示了代码的工作版本:http://jsfiddle.net/7WJYF/