HTML5 тип ввода даты иногда пустое значение, если введено неправильно - PullRequest
0 голосов
/ 11 мая 2018

Есть странная вещь с типом ввода даты.
Вот мой HTML:

function getValue() {
  $('#entered').text($('input[name=test_date]').val());  
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="date" min="2018-01-01" max="2018-05-05" name="test_date">
<button onclick="getValue()">Get value</button>
<p>Entered: <span id="entered"></span></p>

Если я введу недопустимое значение, оно автоматически изменится на действительное значение.
Но не всегда так.Максимальная дата всегда составляет 31.

Например:
Введите: "01/55/2018" => "31/31/2018" - True
Введите: "55/02/2018"=>" 31.02.2008 "- False

И в случае False jquery или php не могут получить значение.
Он всегда возвращает "".

Я хочу получить значение, даже если оно недействительно.Есть ли у вас предложения?

================== Проблема решена Согласно http://crbug.com/231811, причина в простоте.Если вы хотите показать сообщение об ошибке, когда пользователь вводит недопустимую дату.Вы можете проверить с помощью input.validity.badInput или validationMessageenter image description here

1 Ответ

0 голосов
/ 11 мая 2018

Из документации Уровень жизни HTML

Атрибут value, если он указан и не пустой, должен иметь значение это допустимая строка даты.

Алгоритм санации значения выглядит следующим образом: Если значение элемент не является допустимой строкой даты, затем установите его в пустую строку вместо этого.

...