如果输入的日期在过去,则进行Javascript日期验证
Javascript date validation if date entered is in the past
嗨,我已经制作了一个验证表单的脚本,现在我只需要检查日期是否在过去。我使用了一组substr,但它似乎不起作用,请有人帮忙。下面是我的代码日期部分在底部。
function validateForm() {
// this part of the script will collate all errors into one should the user leave an input blank
var Fname=document.forms["myForm"]["fname"].value;
var Lname=document.forms["myForm"]["lname"].value;
var address=document.forms["myForm"]["addr1"].value;
var postcode=document.forms["myForm"]["pcode"].value;
var email=document.forms["myForm"]["email"].value;
var number=document.forms["myForm"]["tel"].value;
var date=document.forms["myForm"]["mydate"].value;
if (Fname==null || Fname=="" ||Lname==null || Lname=="" ||address==null || address=="" ||!postcode||!email||!number||( myForm.sex[0].checked == false ) && ( myForm.sex[1].checked == false )||(myForm.age[0].checked == false )&&(myForm.age[1].checked == false )&&(myForm.age[2].checked == false )&&(myForm.age[3].checked == false )&&(myForm.age[4].checked == false )||!date)
{
alert("Please make sure all fields are filled or checked correctly out ");
return false;
}
//end of collating script
//start of postcode script
var regPostcode = /^[a-zA-Z]{1,2}'d['dA-Za-z]? 'd[a-zA-Z]{2}$/;
if (!postcode.match(regPostcode))
{
alert("That Post Code is incorrect, correct way mk4 4tr");
return false;
}
//end of postcode script
//start of email script
var regEmail =/^'S+@'S+'.'S+$/;
if (!email.match(regEmail))
{
alert("That email is incorrect");
return false;
}
// end of email script
// start of phone number script
var phonestring = /^(?:0|'+44)[12378]'d{8,9}$/;
if (!number.match(phonestring))
{
alert(" incorrect,correct format 01908234874");
return false;
}
// end of phone script
//start of gender script
if ( ( myForm.sex[0].checked == false ) && ( myForm.sex[1].checked == false ) )
{
alert ( "Please choose your Gender: Male or Female" );
return false;
}
// end of gender script
//start of age group script
if((myForm.age[0].checked == false )&&(myForm.age[1].checked == false )&&(myForm.age[2].checked == false )&&(myForm.age[3].checked == false )&&(myForm.age[4].checked == false )){
alert("please select an age group");
return false;
}
// end of age script
//start of datefield
var dateformat=/^(?:(?:31'/(?:0[13578]|1[02])|(?:29|30)'/(?:0[13-9]|1[012])|(?:0[1-9]|1'd|2[0-8])'/(?:0[1-9]|1[0-2]))'/[2-9]'d{3}|29'/02'/(?:[2-9]'d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[3579][26])00))$/;
if (!date.match(dateformat))
{
alert("format incorrect use dd/mm/yyyy make sure you are entering correct days to the month remember 30 days have september, april, june & november, only 28 days in february unless leap year next is 2016");
return false;
}
var today = new Date();
var courseYear =string.substr(6,4) // use substr or substring to capture the last four digits
var courseMonth =string.substr(3,2) // use substr or substring to capture the four and fifth digits
var courseDay = string.substr(0,2)// use substr or substring to capture the first and second digits
var dateToCompare = new Date(courseYear, courseMonth, courseDay);
if (dateToCompare < today) {
alert("this date is in the past");
return false; }
//end of date field
else
{ alert(" Thank you a member of our team will get back to you shortly");
return true;}
}
这看起来不对:
var courseYear = string.substr(6,4) // use substr or substring to capture the last four digits
var courseMonth = string.substr(3,2) // use substr or substring to capture the four and fifth digits
var courseDay = string.substr(0,2)//
应该是:
var courseYear =date.substr(6,4);
var courseMonth =date.substr(3,2);
var courseDay = date.substr(0,2);
否则没问题:http://jsfiddle.net/balintbako/mKmaE/
您可能仍然需要考虑使用jquery插件进行表单验证。
一旦您将字符串转换为日期对象(2行代码),您就可以使用测试它是否在过去
if ( d < new Date()) {
// date is in the past
}
我认为坚持使用日期和月份的填充值没有任何价值,d/m/yyyy就足够了吗?
$split_array = ($('#MyText_input_1').val());//alert($split_array);
//ex. 31-Oct-2013
/*** past date validation script ***/
var c = $split_array[0]; // this is the format of the date coming in.
var temp = new Array();
temp = c.split('-');
var x = new Date ( temp[1]+" "+temp[0]+", "+temp[2] );
//alert((new Date().getTime()));
if (x.getTime() < (new Date().getTime())) {
alert('past date');
return false;
}
/*** end script ***/
相关文章:
- 将日期和时间转换为UTC格式的日期-Javascript
- 将 DD/MMM/YYYY 转换为二进制/纪元日期 JavaScript
- 生成时间戳日期|Javascript范围内的空数据
- 算法导航:如何查找最近的日期(javascript)
- 按日期javascript对JSON数据进行排序
- 可以使用日期 JavaScript 字符串
- 倒计时日期 - Javascript
- 将日期添加到日期以使明天成为当前日期 - Javascript
- 交货日期 Javascript 适应排除周末
- 在文本框中显示当前日期 - JavaScript
- 将json结果转换为正确的日期javascript
- 选择日期-javascript
- 修改时区新日期javascript
- 获取上月日期javascript
- 日期.javascript日期格式
- PHP生成日期->Javascript倒计时
- 如何根据给定的日期JavaScript计算3个月的日期
- 排序数组的日期- javascript
- 为什么日期.UTC(2015, 08, 31) ==日期.javascript中的UTC(2015,09, 01)
- 根据它创建的时区显示日期- JavaScript