2013-07-25 22 views
5

Xin chào, tôi đã có mẫu kendo và mẫu đó chứa một hộp văn bản như dưới đây với bộ chọn ngày giờ.cách đặt ngày tối thiểu cho bộ chọn ngày giờ kendo

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

Bây giờ tôi muốn đặt giá trị tối thiểu cho điều này. tức là tôi không muốn cho phép chọn những ngày trước ngày hôm nay.

Ví dụ nào?

Trả lời

2

Thường, bạn có thể làm một số javascript đây:

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

nhưng tôi không chắc chắn nếu nó sẽ làm việc trong mẫu của bạn theo cách đó. Có lẽ đó là một sự khởi đầu.

+0

nó không hoạt động với các mẫu – jestges

5

Hãy thử điều này

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

nó sẽ hoạt động độc lập .. nhưng tôi đang sử dụng datepicker trong mẫu của tôi như mã trên – jestges

+1

Kendo cung cấp nhiều người trợ giúp ngày. Bạn có thể chỉ cần gọi 'kendo.date.today()' để lấy ngày hiện tại làm đối tượng 'Date' JavaScript. Lưu ý: Tôi tin rằng người trợ giúp này đã được thêm vào trong quý 2 năm 2013. –

2

Ok tôi đã phải thực hiện một cái gì đó tương tự gần đây và tìm ra cách đơn giản để làm điều này. Tôi nhận ra đây là quá muộn, nhưng tôi đã tìm thấy câu hỏi này, trong khi tôi đang nghiên cứu.

Nói dưới đây là mẫu của bạn: (Giản thể cho ngắn gọn)

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

Mã dưới đây cho trường CONTRACT_START_DATE gán một hàm JS để "Thay đổi" sự kiện của trường rằng:

data-change: setContractMinEnd

tôi đã thêm chức năng trên vào một khối tập lệnh để đi ra ngoài với trang. Và bây giờ mỗi khi ngày bắt đầu được thay đổi ngày kết thúc được một giá trị tối thiểu là ngày bắt đầu:

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

Bạn rõ ràng là có thể nhận được ưa thích với logic và thiết lập bên dưới hoặc một cái gì đó về việc đó:

edval.min(new Date())

Hy vọng nó sẽ giúp ai đó ...

+0

Nếu tôi phải đặt ngày tối thiểu trước khi chọn ngày. Vì vậy, người dùng không thể chọn ngày trước đó. Tôi làm nó như thế nào? –