Tôi có một hình thức có chứa một ngày và datetime lĩnh vực:Client-side của ngày loại đầu vào không hoạt động
@Html.TextBoxFor(model => model.A, new { @type = "datetime" })
@Html.TextBoxFor(model => model.B, new { @type = "date" })
mẫu:
public class TestModel
{
[DataType(DataType.Date)]
public DateTime A {get;set;}
[DataType(DataType.Date)]
public DateTime B {get;set;}
}
Bằng cách sử dụng các loại đầu vào một chiếc iPad cho thấy thoải mái bộ chọn ngày (giờ). Các trường được xác thực bằng cách sử dụng xác thực phía máy khách. Đối với trường ngày giờ (A
) nó hoạt động, nhưng trường ngày (B
) sẽ phát sinh lỗi: "vui lòng nhập ngày hợp lệ". Tôi giải quyết điều này như thế nào?
Ví dụ:
- (Safari) giá trị iPad này cho datetime là hợp lệ (theo MVC xác nhận client-side): 15 tháng 12 2011 9:20
- Giá trị iPad (Safari) này cho ngày không hợp lệ: 15 tháng 12. 2011
Thật khó để gỡ lỗi mã trên iPad, vì vậy tôi không biết làm thế nào Safari thay đổi định dạng ngày khi đặt thuộc tính giá trị của đầu vào.
Chỉnh sửa: Tôi phát hiện định dạng ngày giờ là định dạng ngày giờ phổ quát (yyyy-MM-DDTHH:mmZ
), trong khi định dạng ngày là yyyy-MM-dd
. Có lẽ trình xác thực phía máy khách không hiểu được datetime phổ quát và không phải là yyyy-MM-dd
do bản địa hóa.
Vui lòng cung cấp ví dụ đầu vào cho 'B' làm tăng lỗi" vui lòng nhập ngày hợp lệ "nhưng bạn coi là hợp lệ. – phoog
@ Guillaume đã bị xóa nhận xét: đó là HTML hợp lệ, nhưng thực sự không được xử lý bởi mọi trình duyệt. Vì iPad hỗ trợ các kiểu đầu vào này, tôi chỉ sử dụng nó trong chế độ xem iPad. Đối với các trình duyệt thông thường, tôi sử dụng bộ chọn thời gian datetime của jQuery. – Marthijn
type = "date" là mới trong HTML5. Loại tài liệu của bạn là gì? http://dev.w3.org/html5/markup/input.html – Guillaume