Как я могу установить максимальное значение на моем вводе даты HTML5, чтобы оно могло быть распознано Safari для iOS? - PullRequest
6 голосов
/ 07 декабря 2011

Название довольно ясно, я думаю?

Вот мой ввод даты:

<input type="date" id="birthdate" name="birthdate" value="" max="1993-12-07" required/>

В chrome я не могу ввести дату, превосходящую 1993-12-07, используя маленькие стрелки поля (но если я сам напишу дату, я смогу).

В Safari для iOS, фокусировка на этом поле просто приносит хороший указатель даты. Однако этот указатель даты НЕ ограничен атрибутом «max». Так как я могу это сделать? Конечно, у меня есть проверка формы на стороне сервера, но я хочу сделать это и на стороне клиента. Любая идея? Спасибо!

Ответы [ 2 ]

7 голосов
/ 07 декабря 2011

Safari пока не поддерживает его. Только Opera и Chrome поддерживают его по состоянию на ноябрь 2011 года. В любом случае вот w3spec на нем http://www.w3.org/TR/html-markup/input.date.html#input.date.attrs.max

Вы можете использовать проверку JS при отправке или при изменении. Используйте рамки проверки JS на ваш выбор

Вот пример чистого js http://www.roseindia.net/answers/viewqa/Ajax/4734-start-date-and-end-date-validation-in-javascript.html. Используйте максимальную дату вместо даты окончания

Для решения jquery посмотрите это Проверьте, что конечная дата больше, чем начальная дата с jQuery

0 голосов
/ 08 августа 2016

Нашли решение для динамического отключения будущих дат:

@{ string datestring = DateTime.Now.ToString("yyyy-MM-dd"); }
<input type="date" 
       required="required" 
       name="AttendanceDate" 
       max="@datestring" 
       class="form-control" />
...