Funkcja JavaScript sprawdzająca poprawność daty.

0

Cześć,
Piszę w JS skrypt, który sprawdza poprawność daty.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>JSP-page</title>
<script type = "text/javascript">
var request;
function sendInfo(){
var dataOd = document.form.dataOd.value;
var dataDo = document.form.dataDo.value;
if(dataOd.length!=10||dataDo.length!=10){
alert("Podaj poprawną datę1");
var url ="Walidacja.jsp";
}else{
//Sprawdzamy czy rok właściwy
var dataOdRok = dataOd.substr(0, 4);
var dataDoRok = dataDo.substr(0, 4);
if(dataOdRok>2019||dataDoRok>2019){
		alert("Podaj poprawną datę2");
		var url ="Walidacja.jsp";
		}else{
var dataOdMiesiac = dataOd.substr(5, 2);
var dataDoMiesiac = dataDo.substr(5, 2);
if(dataOdMiesiac==1||dataOdMiesiac==3||dataOdMiesiac==5||dataOdMiesiac==7||dataOdMiesiac==8
	||dataOdMiesiac==10||dataOdMiesiac==12||dataDoMiesiac==1||dataDoMiesiac==3||
	dataDoMiesiac==5||dataDoMiesiac==7||dataDoMiesiac==8||dataDoMiesiac==10||dataDoMiesiac==12){
	var dataOdDzien = dataOd.substr(8, 2);
	var dataDoDzien = dataDo.substr(8, 2);
if(dataOdDzien>31||dataOdDzien<0||dataDoDzien>31||dataDoDzien<0)
{
alert("Podaj poprawną datę3");
var url ="Walidacja.jsp";
}else{
	var url ="Rezultat.jsp?dataOd="+dataOd+"&dataDo="+dataDo;
	if(window.XMLHttpRequest)
	{
	request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
	request = new ActiveXObject("Microsofr XMLHTTP")
	}
	try
	{
	request.onreadystatechange=getInfo;
	request.open("GET",url,true);
	request.send();
	}
	catch(e)
	{
	alert("Wyjątek ");
	}
}

	}else{
	
var url ="Rezultat.jsp?dataOd="+dataOd+"&dataDo="+dataDo;
if(window.XMLHttpRequest)
{
request = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
request = new ActiveXObject("Microsofr XMLHTTP")
}
try
{
request.onreadystatechange=getInfo;
request.open("GET",url,true);
request.send();
}
catch(e)
{
alert("Wyjątek ");
}
}
}
}
}
function getInfo(){
if(request.readyState===4)
{
var val=request.responseText;
document.getElementById("Wyniki").innerHTML=val;
}
}

</script>
</head>
<body>
<h1>Ajax demo </h1>
<form name ="form">
Data od: <input type ="date" name ="dataOd">
Data do: <input type ="date" name ="dataDo">
<a href="javascript: sendInfo()">Search</a>
</form>
<span id="Wyniki">Tu się wynik pojawi</span>
</body>
</html>

I nie bardzo rozumiem dlaczego skrypt ten wyrzuca mi błąd jeżeli data jest kwietniowa? np 32 kwietnia nie przejdzie natomiast 31 kwietnia już tak (kwiecień ma 30 dni).
Przecież funkcja na ten moment nie sprawdza ani kwietnia ani czerwca ani listopada i lutego - do tego etapu jeszcze nie doszedłem
Podpowiedzcie mi proszę

0
if(dataOdDzien>31||dataOdDzien<0||dataDoDzien>31||dataDoDzien<0)

zamiast 31 zrób zmienna, która będzie przechowywać 30 lub 31 lub 28 lub 29 w zależności jaki ktoś da miesiąc

1 użytkowników online, w tym zalogowanych: 0, gości: 1