2010-12-07 99 views
1

我有2个输入框用于输入开始日期和结束日期。我需要验证开始日期早于结束日期。我有以下代码来验证,但代码没有当我重视日期选择器控件的onselect事件时,似乎正在开火。请有人告诉我做错了什么?jquery datepicker onselect not firing

<script language="javascript" type="text/javascript"> 
     $(document).ready(function() { 
      $(".date").datepicker({ 
      onSelect:function(dateText,inst){ 

      var startDate=new Date($("#_createDateFromInput").val()); 
      var endDate=new Date($("#_createDateToInput").val()); 
      if(startDate!=""&&endDate!="") 
      { 
       if(startDate>endDate) 
       { 
        alert("End date cannot be earlier than start date"); 
       } 
      } 

      } 

     });}); 
    </script> 

谢谢!!

对于上面的标记是(这是在asp.net):

<label>Date From</label> 
<input class="date" runat="server" id="_createDateFromInput" /> 
<label id="to">To</label> 
<input class="date" runat="server" id="_createDateToInput" /> 

萨尔瓦多Ronnoco不得不相信已锁定到的东西......我注意到,当我删除RUNAT =“服务器”标签我能够开火甚至...但是现在我面临着另一个 问题,以检索后期(即当用户最终提交时)的值。任何人有一个想法?

+0

什么是元素`_createDateFromInput`和`_createDateToInput`的标记。我想象你的startDate和endDate变量没有正确填充。 – 2010-12-07 00:30:29

+0

<输入类= “日期” RUNAT = “服务器” ID = “_ createDateFromInput”/> <标签ID = “到”>要 <输入类= “日期” RUNAT = “服务器” ID =“_ createDateToInput”/> – tmt1982 2010-12-07 01:11:30

回答

0

实现此目的的一种更简单的方法是防止用户可以为endDate选择更早的日期。

这可以通过使用日期选择器插件

$("#startDate").datepicker({ 
    onSelect:function(dateText,inst){ 
     $("#endDate").datepicker("option", "minDate", new Date(dateText)); 
    } 
}); 
0

我使用此代码的的minDate选项被简单地完成,从jQuery UI示例页面:http://jqueryui.com/demos/datepicker/#event-search

基本上它需要2个输入,使得它们datepickers然后选择限制mindate和最大日期。这是一段非常聪明的代码。

$(function() { 
    var dates = $("#from, #to").datepicker({ 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 3, 
     onSelect: function(selectedDate) { 
      var option = this.id == "from" ? "minDate" : "maxDate", 
       instance = $(this).data("datepicker"); 
       date = $.datepicker.parseDate(
        instance.settings.dateFormat || 
        $.datepicker._defaults.dateFormat, 
        selectedDate, instance.settings); 
      dates.not(this).datepicker("option", option, date); 
     } 
    }); 
}); 
0

谢谢你们所有的input.I用了很多你写就弄伤能够做出具有属性runat="server"某些原因,工作是什么原因导致了jquery.I各种问题不得不删除标记和使用请求对象,它是在page.For那些感兴趣的语法固有访问它:

request.form["startDate"].tostring(); 

其中STARTDATE是该字段的属性名的值。