2013-05-20 26 views
5

Tôi có trường văn bản (trong biểu mẫu) được đặt để hiển thị thanh công cụ giao diện người dùng jQuery trên tiêu điểm.Ngăn không cho trình chỉnh sửa ngày tháng của giao diện người dùng jQuery thay đổi giá trị của trường văn bản nếu nằm ngoài phạm vi

Sử dụng PHP (trong màn hình cập nhật) Tôi điền giá trị của trường văn bản này (khi trang tải) với chuỗi ngày dựa trên đầu vào người dùng cuối trước đó cho bản ghi cụ thể này.

Vấn đề của tôi là tôi đặt datepicker với tùy chọn minDate và maxDate, những giới hạn đó giả mạo với giá trị ban đầu được hiển thị trong trường văn bản của tôi.

Nếu chuỗi trường văn bản nhỏ hơn giá trị tối thiểu, thì trường văn bản được đặt thành giá trị của minDate.

Tôi cần giá trị ban đầu không thay đổi ngay cả khi nó nằm ngoài phạm vi lịch (giá trị minDate hoặc maxDate) trừ khi thay đổi được thực hiện bởi người dùng từ lịch.

Ví dụ:

minDate: 01-04-2013 (dd-mm-yy) 
maxDate: 30-04-2013 (dd-mm-yy) 
Original text field value: 16-03-2013 (dd-mm-yy) 
Displayed text field value: 01-04-2013 (dd-mm-yy) 

Ý tưởng là các tùy chọn minDate và maxDate hạn chế người dùng cuối để nhập/sửa đổi dữ liệu trong một thời gian xác định nào đó từ ngày hiện tại.

Tôi đang sử dụng jQuery UI Datepicker 1.8.16 và thư viện JavaScript jQuery v1.6.2. Trình duyệt: Internet   Trình khám phá   7 trở lên, Firefox

+2

Bạn đã figured này ra ở tất cả? Tôi đang gặp vấn đề tương tự. – phazei

+0

Thật không may, không ... – yhammad

+0

Đặt cược tốt nhất của tôi (theo một số bài viết tôi đọc) là một số người liên kết một hàm với tùy chọn 'beforeShowDay' để bật một số ngày nhất định (http://articles.tutorboy.com/2010/09/03/jquery-ui-datepicker-disable-specified-date /). Tôi đã thử trả về true nếu ngày trong lịch khớp với ngày ban đầu hoặc nằm giữa phạm vi ngày và sai khác. Không bao giờ làm việc cho tôi. – yhammad

Trả lời

1

Dưới đây là một cách để tắt.

$(document).ready(function() 
{ 
    var DateLimits = {min:null, max:null}; 

    DateLimits.min = new Date(Date.parse("01-01-2014")); 
    DateLimits.max = new Date(Date.parse("12-31-2014")); 

    $("#datepicker").datepicker(
    { 
     dateFormat: "mm-dd-yy", 
     minDate: DateLimits.min, 
     maxDate: DateLimits.max 
    }); 
}); 

Đây là Fiddle: http://jsfiddle.net/DEfQL/1/

Inspiration từ: How can I set the minDate/maxDate for jQueryUI Datepicker using a string?