2010-12-07 119 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是該字段的屬性名的值。