Javascript验证不适用于Date [英] Javascript validation not working for Date

查看:68
本文介绍了Javascript验证不适用于Date的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有三个下降的日,月,年



有两个日期是DateFrom,其他是DateTo,



i想要使用验证为DateTo不应该更大然后日期来自

和白天应该是28,而闰年应该是29。



这里是我的代码请检查



验证脚本



< script type =text / javascript>

函数验证()

{



var dateFrom = $('#ddd')。val()+' - '+ $('#ddm')。val()+' - '+ $('#ddy')。val( );

var dateTo = $('#dd')。val()+' - '+ $('#mm')。val()+' - '+ $('#yy ').val();

var checkAlert =true;

var dateTimeValue = dateFrom;

var dateTimeToValue = dateTo;

var dateDataFrom = dateTimeValue.split( - );

var dayFrom =(dateDataFrom [0]);

var monthFrom =(dateDataFrom [ 1]);

var yearFrom =(dateDataFrom [2]);

var dateDataTo = dateTimeToValue.split( - );

var dayTo =(dateDataTo [0]);

var monthTo =(dateDataTo [1]);

var yearTo =(dateDataTo [2]);



if(dateTimeValue!=&& dateTimeToValue!=) {



if(dateTimeValue> dateTimeToValue){

alert(DateFrom不能大于DateTo。);



返回false;

}

else if(dateTimeValue.indexOf(_)> -1 || dateTimeValue.length< 10){

alert(请输入有效日期) in(dd-mm-yyyy)格式。);

document.getElementById(dateFrom)。value =;

返回false;

}

else if(dateTimeToValue.indexOf(_)> -1 || dateTimeValue.length< 10){

alert(Please以(dd-mm-yyyy)格式输入有效日期。);

document.getElementById(dateTo)。value =;

返回false;

}

else if(!validateDateTime(dateTimeValue)){

alert(请在DateFrom中输入有效日期);

document.getElementById(dateFrom)。value =;

document.getElementById(dateTo)。value =;

返回false;

}

else if(!validateDateTime(dateTimeToValue)){

alert(请输入val id日期。 in DateTo);

document.getElementById(dateTo)。value =;

document.getElementById(dateFrom)。value =;

返回false;

}

else if(yearFrom> yearTo){

alert('from year is大于年');

document.getElementById(dateFrom)。value =;

document.getElementById(dateTo)。value = ;

}



if if(yearFrom< yearTo || yearFrom == yearTo){

if (monthFrom> monthTo){

alert('正确输入月');

document.getElementById(dateFrom)。value =;

document.getElementById(dateTo)。value =;

返回false;

}



}





if if(yearFrom< yearTo || yearFrom == yearTo){

if(monthFrom< monthTo || monthFrom == monthTo){

if(dayFrom> dayTo){

alert('输入日期正确');

纪录片t.getElementById(dateFrom)。value =;

document.getElementById(dateTo)。value =;

返回false;

}

}

}



}

功能validateDateTime(date){

var valid = true;

var dateData = date.split( - );

var day =( dateData [0]);

var month =(dateData [1]);

var year =(dateData [2]);

var regForDate = /^ [0-3]?[0-9]。[0-3]?[0-9]。(?:[0-9] {2})?[0-9] {2} $ /;



if(!date.match(regForDate)){

valid = false;

}

else if((month< 1)|| (月> 12))valid = false;

else if((day< 1)||(day> 31))valid = false;

else if(((month == 4)||(month == 6)||(month == 9)||(month == 11))&&(day> 30))valid = false;

else if((month == 2)&&(((year%400)== 0)||((year%4)== 0))&&((年%100)!= 0)&&&(day> 29))valid = false;

else if((month == 2)&&((year%100) == 0)&&(day> 29))valid = false;



返回false;

}

返回true;

}



< / script>



.aspx页面: -



< label for =dateFrom>日期来自< / label>



< SELECT class =combineid =dddname =dd>< / SELECT>

< SELECT class =combineid = ddmname =mm>< / SELECT>

< SELECT class =combineid =ddyname =yyyy>< / SELECT>

<% - &l t; input type =textname =dateFromid =dateFromclass =select1style =margin-left:34px; /> - %>

< label for =dateTo> Date To< / label>

< SELECT class =combineid =dd name =dd>< / SELECT>

< SELECT class =combineid =mmname =mm>< / SELECT>

< SELECT class =combineid =yyname =yyyy>< / SELECT>



<% - < ; input type =textname =dateToid =dateToclass =select1/> - %>





< input type =submitname =buttonViewid =buttonViewReportvalue =查看onclick =validate(); class =btn bt/>






谢谢

I have three dropdown for day,month,year

There are two dates on is DateFrom and other is DateTo,

i want to use validate for DateTo not should is greater Then Date From
and day should be 28 for feb and 29 for Leap Year.

here is my code please check

Validation Script

<script type="text/javascript">
function validate()
{

var dateFrom = $('#ddd').val() + '-' + $('#ddm').val() + '-' + $('#ddy').val();
var dateTo = $('#dd').val() + '-' + $('#mm').val() + '-' + $('#yy').val();
var checkAlert = "true";
var dateTimeValue = dateFrom;
var dateTimeToValue = dateTo;
var dateDataFrom = dateTimeValue.split("-");
var dayFrom = (dateDataFrom[0]);
var monthFrom = (dateDataFrom[1]);
var yearFrom = (dateDataFrom[2]);
var dateDataTo = dateTimeToValue.split("-");
var dayTo = (dateDataTo[0]);
var monthTo = (dateDataTo[1]);
var yearTo = (dateDataTo[2]);

if (dateTimeValue != "" && dateTimeToValue != "") {

if (dateTimeValue > dateTimeToValue) {
alert("DateFrom can not greater then DateTo.");

return false;
}
else if (dateTimeValue.indexOf("_") > -1 || dateTimeValue.length < 10) {
alert("Please enter valid date in (dd-mm-yyyy) format.");
document.getElementById("dateFrom").value = "";
return false;
}
else if (dateTimeToValue.indexOf("_") > -1 || dateTimeValue.length < 10) {
alert("Please enter valid date in (dd-mm-yyyy) format.");
document.getElementById("dateTo").value = "";
return false;
}
else if (!validateDateTime(dateTimeValue)) {
alert("Please enter valid date. in DateFrom");
document.getElementById("dateFrom").value = "";
document.getElementById("dateTo").value = "";
return false;
}
else if (!validateDateTime(dateTimeToValue)) {
alert("Please enter valid date. in DateTo");
document.getElementById("dateTo").value = "";
document.getElementById("dateFrom").value = "";
return false;
}
else if (yearFrom > yearTo) {
alert('from year is greater than to year');
document.getElementById("dateFrom").value = "";
document.getElementById("dateTo").value = "";
}

else if (yearFrom < yearTo || yearFrom == yearTo) {
if (monthFrom > monthTo) {
alert('Enter Month Correctly');
document.getElementById("dateFrom").value = "";
document.getElementById("dateTo").value = "";
return false;
}

}


else if (yearFrom < yearTo || yearFrom == yearTo) {
if (monthFrom < monthTo || monthFrom == monthTo) {
if (dayFrom > dayTo) {
alert('Enter Date Correctly');
document.getElementById("dateFrom").value = "";
document.getElementById("dateTo").value = "";
return false;
}
}
}

}
function validateDateTime(date) {
var valid = true;
var dateData = date.split("-");
var day = (dateData[0]);
var month = (dateData[1]);
var year = (dateData[2]);
var regForDate = /^[0-3]?[0-9].[0-3]?[0-9].(?:[0-9]{2})?[0-9]{2}$/;

if (!date.match(regForDate)) {
valid = false;
}
else if ((month < 1) || (month > 12)) valid = false;
else if ((day < 1) || (day > 31)) valid = false;
else if (((month == 4) || (month == 6) || (month == 9) || (month == 11)) && (day > 30)) valid = false;
else if ((month == 2) && (((year % 400) == 0) || ((year % 4) == 0)) && ((year % 100) != 0) && (day > 29)) valid = false;
else if ((month == 2) && ((year % 100) == 0) && (day > 29)) valid = false;

return false;
}
return true;
}

</script>

.aspx page:-

<label for="dateFrom">Date From</label>

<SELECT class="combine" id ="ddd" name = "dd"></SELECT>
<SELECT class="combine" id ="ddm" name = "mm"></SELECT>
<SELECT class="combine" id ="ddy" name = "yyyy" ></SELECT>
<%-- <input type="text" name="dateFrom" id="dateFrom" class="select1" style=" margin-left: 34px;" /> --%>
<label for="dateTo">Date To</label>
<SELECT class="combine" id ="dd" name = "dd"></SELECT>
<SELECT class="combine" id ="mm" name = "mm"></SELECT>
<SELECT class="combine" id ="yy" name = "yyyy" ></SELECT>

<%-- <input type="text" name="dateTo" id="dateTo" class="select1" /> --%>


<input type="submit" name="buttonView" id="buttonViewReport" value="VIEW" onclick="validate();" class=" btn bt"/>



Thanks

推荐答案

('#ddd')。val()+' - '+
('#ddd').val() + '-' +


('#ddm')。val()+' - '+
('#ddm').val() + '-' +


('#ddy')。val();

var dateTo =
('#ddy').val();
var dateTo =


这篇关于Javascript验证不适用于Date的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆