Как вы программно очищаете поля даты HTML5?
Я ищу способ программно очистить поля даты HTML5 с помощью Javascript (в частности, jQuery). До сих пор я пробовал два метода, которые я считал очевидными:
$('input[type=date]').val('');
$('input[type=date]').val('0000-00-00');
Но ни один из них не работает по последней версии Chrome для ПК, по крайней мере, еще не пробовал их с другими браузерами или платформами. Есть ли вызов API или что-то, что может очищать поля даты в кросс-браузере? Решения, которые я искал, такие как this, требуют от пользователя очистить поле даты, тогда как мне нужно, чтобы это было сделано программно.
Ответы
Ответ 1
$("input[type=date]").val("")
у меня работает в хроме. Устанавливает поле ввода в дд/мм/гггг.
Может быть, это браузер конкретного. Большинство браузеров поддерживают только частично или вообще не поддерживают этот ввод: http://caniuse.com/input-datetime
Ответ 2
document.getElementById("datePicker").valueAsDate = null;
эта строка кода работает с моим браузером (хром), не тестировалась в других браузерах
Ответ 3
Вы можете восстановить местозаполнитель,
$('input[type=date]')[0].valueAsDate = '';
Ответ 4
эта строка работает с моим браузером (хром, последняя версия)
$('input[type=date]')[0].value = 0;
Ответ 5
Можете ли вы использовать функцию reset вашей формы?
Вы можете сделать это с помощью кнопки reset:
<button type="reset" value="Reset">Reset</button>
или программно:
$("#yourFormId").reset();
или
$('input[type=date]').reset();
Ответ 6
Используйте собственное свойство defaultValue
:
$('input[type=date]').each( function resetDate(){
this.value = this.defaultValue;
} );
Это работает до тех пор, пока форма не имеет начального value
указанного как показано в этой скрипте.
Ответ 7
Это решение проверяет, существует ли значение по умолчанию и, если это так, использует его для ввода reset. В противном случае он очищает входные данные, обновляя значение и значениеAsDate.
Информация о значенииAsDate доступна по адресу: w3c.org.
var dateEl = element.find('input#myDateInput[type="date"]');
dateEl[0].value = ('undefined' !== typeof dateEl[0].defaultValue) ? dateEl[0].defaultValue : '';
if (dateEl[0].value !== '') {
dateEl[0].valueAsDate = new Date(dateEl[0].value);
} else {
dateEl[0].valueAsDate = null;
}
Ответ 8
Если вы не можете очистить поле даты, это также может зависеть от ошибки браузера.
Я трачу некоторое время, пока не узнаю, что вы не можете сбросить дату в Firefox, если контроль даты отключен.
Смотрите: https://bugzilla.mozilla.org/show_bug.cgi?id=1465979
Без ошибки я могу очистить дату следующим образом:
document.getElementById("myDate").value = "";