问题描述
|
我正在尝试使用我在网上找到的函数来验证格式为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/