2010-12-07 9 views
1

Ich habe 2 Eingabefelder für die Eingabe von Startdatum und Enddatum. Ich muss überprüfen, dass das Startdatum vor dem Enddatum ist. Ich habe den folgenden Code, um das zu überprüfen, aber der Code nicht scheinen zu schießen, wenn ich an das Onselect-Ereignis der Datepicker-Steuerung anschließe. Kann mir bitte jemand sagen, was ich falsch mache?jquery datepicker onselect nicht feuern

<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> 

danke !!

Das Markup für das oben ist (dies ist in 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" /> 

El Ronnoco hatte ich glaube, hat auf etwas verriegelt ... Ich merke, wenn ich die runat = "server" Tag entfernen Ich bin in der Lage, die gerade ... aber jetzt bin ich konfrontiert mit einem anderen Problem, um den Wert während der Post zurück (dh wenn der Benutzer schließlich abschickt) .. jemand eine Idee?

+0

Was ist das Markup für Ihre Elemente '_createDateFromInput' und' _createDateToInput'. Ich stelle mir vor, dass Ihre StartDate und EndDate Vars nicht korrekt ausgefüllt werden. –

+0

tmt1982

+0

El Ronnoco du hast recht Ich habe hinzugefügt, was ich zu meiner Anfrage gefunden habe, danke! – tmt1982

Antwort

0

Eine einfachere Möglichkeit, dies zu erreichen, besteht darin, zu verhindern, dass der Benutzer ein früheres Datum für das endDate auswählen kann.

Dies kann einfach durch Verwendung der minDate Option von Datumsauswahl-Plugin

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

ich diesen Code verwenden, durchgeführt werden, von der jQuery UI Beispiel Seite: http://jqueryui.com/demos/datepicker/#event-search

Grundsätzlich dauert es 2 Eingänge, macht sie Kalenderwerkzeug onselect begrenzt dann sowohl das Mind- als auch das Maximumdatum. Es ist ein sehr cleverer Code.

$(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

Danke Jungs für alle Ihre input.I viel verwendet, was Sie geschrieben hatte down.I der Lage war, diese Arbeit aus irgendeinem Grund das Attribut zu machen runat="server" bewirkt, dass alle Arten von Problemen für jquery.I musste entfernen des Tags und greifen sie das Anforderungsobjekt verwenden, die in der page.For Interessenten in der Syntax inhärent ist:

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

wo startdate der Attributname Wert für dieses Feld ist.

+0

Sie können diese Antwort als "akzeptiert" markieren, indem Sie auf das Symbol "Häkchen" oder "Häkchen" daneben klicken –