2013-07-25 9 views
5

Witam Mam szablon kendo i ten szablon zawiera pole tekstowe jak poniżej z próbnikiem datetime.jak ustawić min date dla kendo datetime picker

<script id="popup_editor" type="text/x-kendo-template"> 
    <input data-role="datepicker" data-bind="value: datePickerValue" /> 
</script> 

Teraz chcę ustawić wartość minimalną dla tego. tj. nie chcę zezwalać na wybieranie dni wcześniejszych niż dzisiaj.

Dowolny przykład?

Odpowiedz

2

Zazwyczaj można zrobić skrypt tutaj:

var myDatePicker = $("#date").kendoDatePicker().data("kendoDatePicker"); 
myDatePicker.min(new Date()); 

ale nie jestem pewien, czy to będzie działać w szablonie w ten sposób. Może to dopiero początek.

+0

nie działa z szablonami – jestges

5

Spróbuj

var myDatePicker = $("#myDatePicker").kendoDatePicker().data("kendoDatePicker"); 
var today = new Date(); 
var day = today.getDate(); 
var month = today.getMonth() + 1; 
var year = today.getFullYear(); 
myDatePicker.min(new Date(year,month,day)); 
+0

będzie działać niezależnie .. ale używam datepicker w moim szablonu jak powyższy kod – jestges

+1

Kendo zapewnia wiele date pomocników. Możesz po prostu wywołać 'kendo.date.today()', aby uzyskać aktualną datę jako obiekt JavaScript 'Date'. Uwaga: Wydaje mi się, że ten helper został dodany w drugim kwartale 2013 r. –

2

Ok Musiałem zaimplementować coś podobnego niedawno i znaleźli prosty sposób, aby to zrobić. Zdaję sobie sprawę, że jest o wiele za późno, ale znalazłem to pytanie podczas moich badań.

Wypowiedz poniżej szablon: (uproszczony dla zwięzłość)

<div class="k-block k-shadow"> 
     <p>Contract Start Date: </p> 
     <input type="text" tabindex="7" 
      class="k-input k-textbox" 
      name="Contract_Start_Date" 
      id="Contract_Start_Date" 
      data-bind="value:Contract_Start_Date" 
      data-format="MMMM yyyy" 
      data-start="year" 
      data-depth="year" 
      data-change="setContractMinEnd" 
      data-role="datepicker" /> 
    </div> 
    <div class="k-block k-shadow"> 
     <p>Contract End Date: </p> 
     <input type="text" tabindex="8" 
      class="k-input k-textbox" 
      name="Contract_End_Date" 
      id="Contract_End_Date" 
      data-bind="value:Contract_End_Date" 
      data-format="MMMM yyyy" 
      data-start="year" 
      data-depth="year" 
      data-role="datepicker" /> 
    </div> 

Poniższy kod w polu Contract_Start_Date przypisuje funkcję JS do „Zmień” wydarzenie tej dziedzinie:

data-change: setContractMinEnd

I dodano powyższą funkcję w bloku skryptu, aby wyjść ze stroną. I teraz za każdym razem, data rozpoczęcia zmienia się datę końcową dostaje wartość minimalna, która jest data rozpoczęcia:

function setContractMinEnd() { 
    var edval = $('#Contract_Start_Date').data("kendoDatePicker"); 
    var sdval = $('#Contract_End_Date').data("kendoDatePicker"); 
    if (sdval && edval) {       
     edval.min(sdval.value()); 
    } 
} 

Można oczywiście uzyskać fantazyjne z tą logiką i ustawić poniżej lub coś w tym rodzaju:

edval.min(new Date())

mam nadzieję, że ktoś pomoże ...

+0

Jeśli muszę ustawić datę minimalną przed wyborem daty. Dzięki temu użytkownik nie może wybrać poprzedniej daty. Jak mogę to zrobić? –

Powiązane problemy