我正在使用我的mvc 4应用程序。在这里有Day,Month,Year下拉菜单来选择出生日期。现在我想验证所选月份和年份中的选定日期(特别是2月29日,28日和全月)。有没有任何定义的jQuery或JavaScript的功能呢?在客户端验证选定月份和年份中的选定日期
请帮忙。
我正在使用我的mvc 4应用程序。在这里有Day,Month,Year下拉菜单来选择出生日期。现在我想验证所选月份和年份中的选定日期(特别是2月29日,28日和全月)。有没有任何定义的jQuery或JavaScript的功能呢?在客户端验证选定月份和年份中的选定日期
请帮忙。
function isDate(txtDate) {
var currVal = txtDate;
if (currVal == '')
return false;
//Declare Regex
var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var dtArray = currVal.match(rxDatePattern); // is format OK?
if (dtArray == null)
return false;
//Checks for dd/mm/yyyy format.
var dtDay = dtArray[1];
var dtMonth = dtArray[3];
var dtYear = dtArray[5];
if (dtMonth < 1 || dtMonth > 12)
return false;
else if (dtDay < 1 || dtDay > 31)
return false;
else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31)
return false;
else if (dtMonth == 2) {
var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
if (dtDay > 29 || (dtDay == 29 && !isleap))
return false;
}
return true;
}
这将以这种格式“dd/MM/yyyy”工作。
您正在使用jquery。 。因为我在http://jsfiddle.net/9mx7K/18/中测试它对我的工作很好 –
匹配是验证正则表达式的基本方法。 –
谢谢安娜,我修复了错误,解决方案对我来说工作得很好。非常感谢你。 –
<script type="text/javascript">
function checkdate(input){
var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
var returnval=false
if (!validformat.test(input.value))
alert("Invalid Date Format. Please correct and submit again.")
else{
var monthfield=input.value.split("/")[0]
var dayfield=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 and submit again.")
else
returnval=true
}
if (returnval==false) input.select()
return returnval
}
</script>
我把这个函数叫做提交按钮,你必须以mm/dd/yyyy格式将日期传递给这个函数。它会验证所有日期。如果你面临问题,然后PLZ回复我。
我已经通过'02/28/2013'作为函数参数,但显示验证消息'日期格式无效。请修正并再次提交' –
我的目标是验证一个月内的任何无效日期(例如:如果我给'02/February/2013,那么需要显示'Invalid date selected') –
你有没有尝试jQuery验证插件。 – Saravanan
我需要一种方法来验证这些下拉菜单或重新基于月份/年选择。 –
您是否尝试从下拉列表中构建日期,以便验证日期。也读过这篇文章:http://stackoverflow.com/questions/511439/custom-date-format-with-jquery-validation-plugin – Saravanan