2013-06-19 15 views

Trả lời

29

You can add a min or max attribute to the input type=date. Ngày phải ở định dạng ISO (yyyy-mm-dd). Điều này được hỗ trợ trong nhiều trình duyệt dành cho thiết bị di động và các phiên bản Chrome hiện tại, mặc dù người dùng có thể nhập ngày không hợp lệ theo cách thủ công mà không cần sử dụng công cụ datepicker.

<input name="somedate" type="date" min="2013-12-25"> 

Các minmax thuộc tính phải là một ngày đầy đủ; không có cách nào để chỉ định "hôm nay" hoặc "+0". Để làm điều đó, bạn sẽ cần phải sử dụng JavaScript hoặc một ngôn ngữ server-side:

var today = new Date().toISOString().split('T')[0]; 
document.getElementsByName("somedate")[0].setAttribute('min', today); 

http://jsfiddle.net/mblase75/kz7d2/

cầm quyền ra chỉ ngày hôm nay, trong khi cho phép trong quá khứ hay tương lai ngày, chứ không phải là một lựa chọn ở đây. Tuy nhiên, nếu bạn có nghĩa là bạn muốn ngày mai là ngày min (xóa ngày hôm nay và tất cả các ngày trong quá khứ), hãy xem this question để tăng today trước một ngày.

Như trong tất cả các trường hợp khác liên quan đến biểu mẫu HTML, bạn phải luôn xác thực phía máy chủ trường bất kể bạn hạn chế phía máy khách như thế nào.

+0

Tính năng này có hoạt động không? – Pasta

+0

@Pasta Vâng, đúng vậy. Bạn có vấn đề cụ thể nào khi triển khai nó? – Blazemonger

+1

Nếu người dùng chèn ngày theo đầu vào thay vì theo lịch, điều này không hoạt động: ( – smartmouse

9

Có thể dễ dàng. bạn có thể làm điều này bằng cách làm theo

<input type="date" min="<?php echo date("Y-m-d"); ?>" > </input> 
+21

Ai nói rằng anh ta đang sử dụng PHP? – Blazemonger

+1

nếu anh ta không sử dụng thì anh ta phải sử dụng có thể là tôi nghĩ html5 không cung cấp faciltiy này. nếu bạn biết cách thực hiện điều này mà không cần sử dụng PHP thì hãy đăng câu trả lời của bạn để tôi cũng có thể nâng cấp kiến ​​thức của mình – Ritesh

+2

Hoàn thành: http://stackoverflow.com/a/19253547/901048 – Blazemonger

0

Bạn có thể sử dụng để vô hiệu hóa ngày trong tương lai:
Bên trong, bạn document.ready chức năng, đặt

//Display Only Date till today // 

var dtToday = new Date(); 
var month = dtToday.getMonth() + 1;  // getMonth() is zero-based 
var day = dtToday.getDate(); 
var year = dtToday.getFullYear(); 
if(month < 10) 
    month = '0' + month.toString(); 
if(day < 10) 
    day = '0' + day.toString(); 

var maxDate = year + '-' + month + '-' + day; 
$('#dateID').attr('max', maxDate); 

và ở dạng

<input id="dateID" type="date"/> 

Đây là làm việc jFiddle Demo

Các vấn đề liên quan