Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.09.2024, 20:31
Интересующийся
Отправить личное сообщение для NastyaVs Посмотреть профиль Найти все сообщения от NastyaVs
 
Регистрация: 28.01.2024
Сообщений: 28

Сброс введенных значений в поля формы при кастомном input для ввода времени
Приветствую. При реализации кастомного input для выбора времени возникает проблема. После заполнения всех полей формы, а именно после выбора времени в соответствующем после нажатия Apply time (кнопка Apply time относится непосредственно к выбору времени) страница обновляется, все введенные значения пропадают. Для данного поля еще есть кнопка Cancel при нажатии которой тоже происходит подобная ситуация. По сути она отменяет выбранное время. На видео показала как именно это происходит Как разрешить проблему?

<div class="form-page__time-picker">
	<input type="text" id="time-book-table" placeholder="Choose time">

		<div id="time-picker">
			<select id="hours">
			<!-- Опции для выбора часов -->
			<option value="12">12</option>
			<option value="01">01</option>
			<option value="02">02</option>
			<option value="03">03</option>
			<option value="04">04</option>
			<option value="05">05</option>
			<option value="06">06</option>
			<option value="07">07</option>
			<option value="08">08</option>
			<option value="09">09</option>
			<option value="10">10</option>
			<option value="11">11</option>
	</select> :
	<select id="minutes">
			<!-- Опции для выбора минут -->
			<option value="00">00</option>
			<option value="15">15</option>
			<option value="30">30</option>
			<option value="45">45</option>
	</select>
	<select id="ampm">
		<!-- Опции для выбора AM/PM -->
		<option value="AM">AM</option>
		<option value="PM">PM</option>
</select>
	<!-- Кнопки Установить и Отменить -->
	<div>
		<button onclick="setTime()">Apply Time</button>
		<button onclick="cancelTime()">Cancel</button>
	</div>

</div>


const inputField = document.getElementById("time-book-table");
const timePicker = document.getElementById("time-picker");

// Показываем или скрываем меню выбора времени
inputField.addEventListener("focus", function () {
	const rect = inputField.getBoundingClientRect();
	timePicker.style.display = "block";
	timePicker.style.top = rect.bottom + "px";
	timePicker.style.left = rect.left + "px";
});

document.addEventListener("click", function (event) {
	if (!timePicker.contains(event.target) && event.target !== inputField) {
		timePicker.style.display = "none";
	}
});

function setTime() {
	const hours = document.getElementById("hours").value;
	const minutes = document.getElementById("minutes").value;
	const ampm = document.getElementById("ampm").value;
	inputField.value = hours + ":" + minutes + " " + ampm;
	timePicker.style.display = "none";
}

// Отменяем выбор времени и скрываем меню
function cancelTime() {
	inputField.value = ""; // Очищаем поле ввода
	timePicker.style.display = "none";
}
Вложения:
Тип файла: zip видео.zip (966.9 Кб, 0 просмотров)

Последний раз редактировалось NastyaVs, 13.09.2024 в 20:34.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поле для ввода телефона. При потери фокуса поля, маска прячется DDim1000 Общие вопросы Javascript 1 23.11.2016 20:02
Input type="time" + JS +Safari (iPhone) dpts Opera, Safari и др. 0 21.09.2016 07:24
Каким образом уменьшить размер поля ввода даты и времени bootstrap-datetime? drno-reg Элементы интерфейса 0 12.09.2016 16:11
Поле для тестового ввода с кнопкой input mort_ Общие вопросы Javascript 3 25.03.2015 14:24
Валидация поля для отправки формы shkarbatov Javascript под браузер 3 25.07.2011 14:07