我想驗證表單中的dateTime輸入字段,如果沒有輸入,它需要發出警報消息,如果「FromDate」(例如:17-12-2013 19:14:58)>比「CurrentDate」它需要以相同的方式給出警報消息「ToDate」>它需要給予mes的「CurrentDate」,並且如果在該cse中的「FromDate」>「ToDate」也需要給出我寫的一些警報消息它的代碼,但它不工作,任何人都可以幫助我嗎? 代碼家業是這樣的:在JavaScript中的日期時間比較不起作用
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Preva Tracking Systems</title>
<link rel="icon" href="pictures/preva_logo.png" />
<link rel="stylesheet" href="css/screen.css" type="text/css">
<link rel="stylesheet" href="css/site.css" type="text/css">
<link href="css/sty.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/datetimepicker.js"></script>
<script type="text/javascript" src="js/overspeedvalidate.js" >
</script>
</head>
<body>
<form name="myForm" onsubmit="return validateForm()" action="ReportGenerator?action=OverspeedEventDBReport" method="post">
<table width=100% border="1">
<tr bgcolor=#075A99 >
<td width=100% align=left><b><font color=white>OverSpeed Event Report</font></b></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="100%" class="reportSearchBorder">
<tr><td> </td></tr>
<tr>
<td width="100%">
<table width="100%" cellpadding="0" cellspacing="0" border=0>
<tr>
<td align="left" id="VehicleIdDescDiv" valign="middle">Vehicle Number</td>
<td >
<table align=left border=0>
<tr>
<td align=left>
<select name="vehicleId" class="txtbig" ><option value="">Select vehicle number</option>
<c:forEach var="vehiclelist" items="${devicelists}">
<option value="${vehiclelist.deviceID}">${vehiclelist.description}</option>
</c:forEach></select>
</td>
</tr>
<tr><td align="center"></td></tr>
<tr>
<td valign="middle"></td>
</tr>
</table>
</td><td id="VehicleIdDescDiv" valign="middle">Show overspeed instances more than</td>
<td >
<select name="speed" class="txtbig" >
<option value="">Select</option>
<option value=">100km">>100km</option>
<option value=">90km">>90km</option>
<option value=">80km">>80km</option>
<option value=">70km">>70km</option>
<option value=">60km">>60km</option>
<option value=">50km">>50km</option>
<option value=">40km">>40km</option>
<option value=">30km">>30km</option>
<option value=">20km">>20km</option>
<option value=">10km">>10km</option>
</select> </td>
</tr></table>
<table>
<tr><td> </td></tr>
<tr>
<td width="60%">
<table>
<tr><td>From Date</td>
<td>
<input type="Text" name="AnotherDate" id="demo1" maxlength="25" size="25"><a href="javascript:NewCal('demo1','ddMMyyyy',true,24)"><img src="pictures/cal.gif" width="16" height="16" border="0" alt="select"></a>
<br>(eg:- 17-12-2013 19:14:58)
</td>
<td>To Date</td>
<td>
<input type="Text" id="demo2" name="ADate" maxlength="25" size="25"><a href="javascript:NewCal('demo2','ddMMyyyy',true,24)"><img src="pictures/cal.gif" width="16" height="16" border="0" alt="select"></a>
<br>(eg:- 17-12-2013 19:14:58)
</td>
</tr>
</table>
</td>
</tr>
<tr><td> </td></tr>
<tr>
<td width="60%"><table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="right"><input type="submit" value="Show Report" class="button1"></td>
</tr>
</table></td>
</tr>
<tr><td> </td></tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
overspeedvalidate.js代碼wiil是這樣的:
function validateForm() {
var todayDate = new Date();
var fromDate=document.myForm.AnotherDate.value;
var toDate=document.myForm.ADate.value;
var fromparts = fromDate.split(" ");
var fromdate= fromparts[0];
var fromtime=fromparts[1];
var fromdayfield = fromdate.split("-")[0];
var frommonthfield = fromdate.split("-")[1];
var fromyearfield = fromdate.split("-")[2];
var fromhourfield = fromtime.split(":")[0];
var fromminfield = fromtime.split(":")[1];
var fromsecfield = fromtime.split(":")[2];
var toparts = toDate.split(" ");
var todate= toparts[0];
var totime=toparts[1];
var todayfield = todate.split("-")[0];
var tomonthfield = todate.split("-")[1];
var toyearfield = todate.split("-")[2];
var tohourfield = totime.split(":")[0];
var tominfield = totime.split(":")[1];
var tosecfield = totime.split(":")[2];
var fromDate = new Date(fromyearfield, frommonthfield-1, fromdayfield,fromhourfield,fromminfield,fromsecfield);
var toDate = new Date(toyearfield, tomonthfield-1, todayfield,tohourfield,tominfield,tosecfield);
if(document.myForm.vehicleId.selectedIndex ==0){
alert("Please select vehicle number");
document.myForm.vehicleId.focus();
return false;
}else if (document.myForm.speed.selectedIndex == 0){
alert("Please select Speed");
return false;
}else if (document.myForm.AnotherDate.value == null || document.myForm.AnotherDate.value == ""){
alert("Please select FromDate");
document.myForm.AnotherDate.focus();
return false;
}else if (fromDate.getTime()>todayDate.getTime()){
alert("Please select FromDate lessthan CurrentDate");
document.myForm.AnotherDate.focus();
return false;
}
else if (document.myForm.ADate.value == null || document.myForm.ADate.value == ""){
alert("Please select ToDate");
document.myForm.ADate.focus();
return false;
}else if(toDate.getTime()>todayDate.getTime()){
alert("Please select ToDate lessthan CurrentDate");
document.myForm.ADate.focus();
return false;
}else if (fromDate.getTime()>toDate.getTime()){
alert("Please select FromDate lessthan ToDate");
document.myForm.AnotherDate.focus();
return false;
}
return true;
}
當我考慮
只有高達日期它工作正常,但是當我考慮的日期和時間,它是不工作可以解決我的問題
檢查控制檯日誌。你的代碼有一些錯誤。你聲明fromDate和toDate兩次 –
我認爲這不是一個問題,因爲對於相同的VAR我創建日期objects.I嘗試用不同的名字也 – hari
你到底想要什麼? –