Отключить выходные по HTML 5 введите тип даты [дубликат]

Попробуйте

<?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "HTML email";

$message = "
    <html>
    <head>
       <title>HTML email</title>
    </head>
    <body>
      <p>This email contains HTML Tags!</p>
      <table>
        <tr>
         <th>Firstname</th>
         <th>Lastname</th>
        </tr>
        <tr>
          <td>John</td>
          <td>Doe</td>
        </tr>
      </table>
    </body>
    </html>";

// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// More headers
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

mail($to,$subject,$message,$headers);
?> 
15
задан Jeremy Moritz 14 March 2016 в 20:46
поделиться

3 ответа

Вы можете добавить атрибут min или max в input type=date . Дата должна быть в формате ISO (yyyy-mm-dd). Это поддерживается во многих мобильных браузерах и текущих версиях Chrome, хотя пользователи могут вручную вводить недопустимую дату без использования datepicker.

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

Атрибуты min и max должны быть полной датой; нет способа указать «сегодня» или «+0». Для этого вам необходимо использовать JavaScript или серверный язык:

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

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

Реализация только сегодня, при разрешении прошлых или будущих дат, здесь не вариант. Однако если вы хотите, чтобы завтра вы были min датой (гаснет сегодня и все прошлые даты), см. этот вопрос , чтобы увеличить today на один день.

Как и во всех других случаях, связанных с формами HTML, вы всегда должны проверять полевую серверную сторону независимо от того, как вы ограничиваете ее на стороне клиента.

35
ответ дан Community 20 August 2018 в 23:43
поделиться
  • 1
    Это вообще работает? – Pasta 14 September 2016 в 15:19
  • 2
    @Pasta Да, да. У вас была конкретная проблема с ее внедрением? – Blazemonger 14 September 2016 в 17:46
  • 3
    Если пользователь вводит дату с помощью ввода вместо календаря, это не работает :( – smartmouse 6 October 2016 в 10:24
  • 4
    @smartmouse Это правда; для борьбы с этим потребуется какое-то событие JavaScript onblur (в дополнение к проверке на стороне сервера). – Blazemonger 6 October 2016 в 13:36

HTML datepicker (<input type=date>) поддерживает атрибут min / max, но не поддерживается широко .

Тем временем вы можете рассмотреть возможность использования bootstrap-datepicker , v1.2.0 включен в github .

Ссылки:

Спецификация W3C

3
ответ дан leesei 20 August 2018 в 23:43
поделиться

Вы можете использовать это, чтобы отключить будущие даты. Внутри функции document.ready поместите

//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);

и в форму

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

Вот рабочий jFiddle Demo

0
ответ дан Sreejith BS 20 August 2018 в 23:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: