11

Đây là trang web của tôi: http://splash.inting.org/wp/Bootstrap datepicker (tránh nhập văn bản hoặc hạn chế đầu vào bằng tay)

Tôi hiện đang sử dụng các Bootstrap Datepicker (range branch) cho lĩnh vực ngày Gọi của tôi và nó được rất lớn.

Mặc dù tôi có 2 vấn đề:

1) Bạn có thể tự nhập chuỗi trong lĩnh vực đầu vào. Điều này là lạ vì original by eyecon không cho phép nó bằng cách nhập ngày hiện tại bất cứ khi nào bạn nhập các giá trị không phải ngày. Tôi đã thử thuộc tính chỉ đọc và nó dường như không hoạt động vì nó sẽ không cho phép bạn chọn bất kỳ ngày nào.

2) Tôi đã giới hạn lựa chọn ngày nhập vào Thứ Ba và Thứ Năm bằng cách sửa đổi câu trả lời trong another post. Khi tải datepicker, ngày mặc định được chọn là ngày hiện tại, có thể là bất kỳ ngày nào khác trong tuần. Tôi muốn tránh điều này và chỉ chọn Thứ Ba hoặc Thứ Năm.

+0

trang web của bạn đang giảm – Trevor

Trả lời

2

Sử dụng các thuộc tính chỉ đọc và nối thêm một add-on sau khi các yếu tố đầu vào để kích hoạt datepicker sau khi đầu vào:

<input type="text" name="CallDate" value="" id="CallDate" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required input-medium date date-pick" size="40" readonly> 
<span class="add-on"><i class="icon-calendar"></i></span> 

nên hoạt động.

Đối với vấn đề thứ hai bạn có thể sử dụng một phiên bản sửa đổi của datepicker từ đây: https://github.com/eternicode/bootstrap-datepicker và sử dụng tùy chọn daysOfWeekDisabled

65

Override sự kiện quan trọng trên sự kiểm soát đầu vào.

<input onkeydown="return false" ... /> 
+1

Câu trả lời hoàn hảo :) –

+0

Câu trả lời hay nhất cho tất cả các câu hỏi tương tự. Nếu bạn chỉ đọc hoặc vô hiệu hóa, điều này sẽ ngăn loại ngày nhập HTML mới hiển thị bộ chọn ngày được tích hợp sẵn của trình duyệt. Phương pháp này cho phép trải nghiệm trình duyệt mặc định nhưng cấm nhập thủ công! –

+0

Cảm ơn rất nhiều ... nó hoạt động ..... –

1

tôi quản lý để có được giải pháp chấp nhận được như sau:

$(".date").datetimepicker({ 
    defaultDate: moment(), 
    format: 'YYYY-MM-DD' 
}).end().on('keypress paste', function (e) { 
    e.preventDefault(); 
    return false; 
}); 

Hy vọng nó sẽ làm việc cho bạn quá!

+0

'keypress' không tính đến phím xóa ... Tôi đã sử dụng' keydown' thay thế và ngăn chặn thực thi hành động trên tab (keycode = 9) và các phím (keycode = 13). – Pablo