Validation 比较jstl的c:if标记中输入字段的两个值

Validation 比较jstl的c:if标记中输入字段的两个值,validation,input,jstl,Validation,Input,Jstl,我有两个输入字段,通过它们选择日期和时间。现在我想显示startdate应始终小于enddate。如果不是,则应显示错误消息,显示“enddate必须大于enddate”。输入字段的代码为 <input id="startdate" type="text" size="25" name="startdate" onclick="javascript:NewCal('startdate','ddmmmyyyy',true,24)" > <a> <img src="

我有两个输入字段,通过它们选择日期和时间。现在我想显示startdate应始终小于enddate。如果不是,则应显示错误消息,显示“enddate必须大于enddate”。输入字段的代码为

<input id="startdate" type="text" size="25" name="startdate" 

onclick="javascript:NewCal('startdate','ddmmmyyyy',true,24)" >
<a>
<img src="images/cal.gif" width="10" height="10" border="0" alt="Pick a date">
</a>

<input id="enddate" type="text" size="25" name="enddate" onclick="javascript:NewCal('enddate','ddmmmyyyy',true,24)" >
<a>
<img src="images/cal.gif" width="10" height="10" border="0" alt="Pick a date">
</a>
<c:if test="${enddate < startdate}">
<c:out value="Endate date should be greater than start date"></c:out> </c:if>
<input type="submit" value="Submit"><br>

</form>


我已经用jstl标签试过了,但它不起作用。如果我选择enddate小于startdate,则不会显示错误消息。 我做错了什么。我不能在JSTL的标记中使用输入字段的id吗?

编辑-1 填写表格后的屏幕排序为


当我单击文本字段时,日历出现。

您可以这样尝试:-

修改此行:

<form onsubmit="date_comapare()">
<input id="startdate" type="text" size="25" name="startdate" onclick="javascript:NewCal('startdate','ddmmmyyyy',true,24)" >
<a><img src="images/cal.gif" width="10" height="10" border="0" alt="Pick a date"></a>

<input id="enddate" type="text" size="25" name="enddate" onclick="javascript:NewCal('enddate','ddmmmyyyy',true,24)" >
<a><img src="images/cal.gif" width="10" height="10" border="0" alt="Pick a date"></a>

 <input type="submit" value="Submit"><br>
</form>


您可以这样设置日期选择器的格式:2015年3月9日星期一09:28:26 GMT

javascript:-

function date_comapare()
{

   var d1=document.getElementIdBy("startdate").value; // start date
   var d2=document.getElementIdBy("enddate").value; //end date

   if(new Date(d2).valueOf() < new Date(d1).valueOf())
   {
      alert("Endate date should be greater than start date");  // handle  your error validation here
      return false;
   }
}
功能日期\u comapare()
{
var d1=document.getElementIdBy(“startdate”).value;//开始日期
var d2=document.getElementIdBy(“enddate”).value;//结束日期
如果(新日期(d2).valueOf()<新日期(d1).valueOf())
{
警报(“结束日期应大于开始日期”);//在此处处理错误验证
返回false;
}
}

请不要将jstl与javascript混为一谈。JSTL从服务器端工作到客户端,JavaScript在客户端工作side@Md.SharifulIslam,那么如何检查enddate,即如何确保开始日期应小于enddate?您可以双向检查-服务器端或客户端?试试看one@Md.SharifulIslam,如果我想在客户端这样做,怎么做。我在标签中定义了javascript,但它不起作用。当我输入的结束日期小于开始日期,并且单击“提交”时,不会显示警告消息。填写表单后,您能给我看一个屏幕截图吗?这个函数做什么?NewCal('startdate','ddmmmyyyy',true,24)请查看我的屏幕截图