@alexandrsemen4ukk

Почему не отображается заполнитель и иконка инпута даты в bootstrap на мобильных устройствах?

Ситуация следующая, собрал группу формы
<div class="col-md-6 form-group">
	<div class="form-group mt-3 mt-md-0">
		<div data-tip="Введите номер телефона указанный в договоре">
			<input placeholder="+7 (123) 456-78-90" type="text" class="form-control phonenumb" name="phonenumb" value="" required /> </div>
		<div data-tip="Выберите удобную дату">
			<input id="checkDate" name="checkDate" class="form-control" type="date" onchange="getdate(event);" required /> </div>
	</div>
</div>


Имею следующий вид в десктоп браузере (в режиме просмотра мобильного тоже): 6465f7425cd15189108398.png
Но если открываю в браузере сафари или гугл хром на телефоне (физическом устройстве), то вижу следующее: 6465f7d260c46630135580.jpeg

Получается что у меня в мобильных инпут даты просто пустой хотя работает и при нажатии всплывает подсказка о выборе даты и диалоговое окошко даты появляется, после выбора в инпуте отображается выбранная дата. Но отсутствие каких либо предписаний к инпуту сбивает с толку посетителей сайта. Как решить данную проблему?
  • Вопрос задан
  • 237 просмотров
Решения вопроса 1
@alexandrsemen4ukk Автор вопроса
В общем я решил задачу тем, что просто устанавливаю значение по умолчанию, при таком раскладе инпут всегда заполнен датой, что позволяет человеку понять что это инпут даты (даже с учётом того, что иконка не во всех браузерах отображается).

Вот пример js, в котором я вычисляю минимальную и максимальную даты от текущей и по умолчанию выставляю минимальную доступную дату:
var minInput = getMinDateForInput();
    $("#checkDate").val(minInput);


В моём случае минимальная дата может быть только завтра, но если "завтра" - суббота или воскресенье, то минимальная доступная дата - грядущий понедельник:
function getMinDateForInput() {
    var currentDate = new Date();
    currentDate.setDate(currentDate.getDate() + 1);

    while (currentDate.getDay() === 0 || currentDate.getDay() === 6) {
        currentDate.setDate(currentDate.getDate() + 1); // Если да, увеличиваем дату на один день
    }
    var year = date.getFullYear();
    var month = ('0' + (date.getMonth() + 1)).slice(-2);
    var day = ('0' + date.getDate()).slice(-2);

    var formattedDate = year + '-' + month + '-' + day;
    return formattedDate;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@nkochnevss
у меня была похожая проблема
placeholder не отображается при type="date"
и я нашел более ли менее подходящее мне решение возможно оно и тебе поможет)
<input class="number_pasport" type="text" onfocus="(this.type='date')" onblur="(this.type='text')" id="date_of_issue" placeholder="Дата выдачи">
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 08:04
1 руб./за проект
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект