
В этом тренажере вы попрактикуетесь блокировать и разблокировать поля формы с помощью JavaScript. Вы будете изменять атрибуты HTML элементов, таких как `disabled`, а также управлять интерактивностью элементов формы, основываясь на различных условиях и событиях. Задания охватывают различные сценарии, от простой блокировки одного поля до сложных взаимодействий между несколькими элементами. Внимательно читайте условия и используйте свои знания JavaScript и DOM, чтобы правильно модифицировать предоставленный HTML и JavaScript код.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Блокировка текстового поля
Заблокируйте текстовое поле с id="myTextField". После выполнения кода поле должно стать недоступным для редактирования.
<input type="text" id="myTextField" value="Исходный текст">
document.getElementById("input__1").disabled = input__2;
Разблокировка текстового поля
Разблокируйте текстовое поле с id="myTextField", которое изначально заблокировано.
<input type="text" id="myTextField" value="Исходный текст" disabled>
document.getElementById(input__1).input__2 = false;
Блокировка/разблокировка по клику
Сделайте так, чтобы при клике на кнопку с id="toggleButton" текстовое поле с id="myTextField" меняло свое состояние (заблокировано/разблокировано).
<input type="text" id="myTextField" value="Исходный текст">
<button id="toggleButton">Переключить</button>
document.getElementById("toggleButton").addEventListener("click", function() {
const textField = document.getElementById("myTextField");
textField.disabled = input__1;
});
Блокировка нескольких полей
Заблокируйте все текстовые поля на странице.
<input type="text" value="Поле 1">
<input type="text" value="Поле 2">
<input type="text" value="Поле 3">
const textFields = document.querySelectorAll("input__1");
textFields.forEach(function(textField) {
textField.input__2 = true;
});
Разблокировка полей при выборе чекбокса
Сделайте так, чтобы при установке чекбокса с id="agreeCheckbox" разблокировались текстовые поля с классом "protected".
<input type="checkbox" id="agreeCheckbox"> Согласен с условиями
<input type="text" class="protected" value="Поле 1" disabled>
<input type="text" class="protected" value="Поле 2" disabled>
document.getElementById("agreeCheckbox").addEventListener("change", function() {
const protectedFields = document.querySelectorAll(".input__1");
if (this.input__2) {
protectedFields.forEach(function(field) {
field.disabled = input__3;
});
}
});
Блокировка поля в зависимости от значения другого поля
Сделайте так, чтобы поле "Другое" (id="otherInput") блокировалось, если в выпадающем списке (id="occupationSelect") выбрано значение, отличное от "Другое".
<select id="occupationSelect">
<option value="student">Студент</option>
<option value="employee">Сотрудник</option>
<option value="other">Другое</option>
</select>
<input type="text" id="otherInput" placeholder="Укажите другое" disabled>
document.getElementById("occupationSelect").addEventListener("change", function() {
const otherInput = document.getElementById("otherInput");
otherInput.disabled = this.value input__1 "other";
});
Блокировка поля с изображением
Сделайте поле с изображением (id="imageInput") некликабельным (заблокируйте его).
<img src="https://naytikurs.ru/assets/uploads/2025/03/3d-modelirovanie-i-vizualizatsiya-test-dlya-spetsialistov-v-trehmernoj-grafike2-300x300.png" id="imageInput" alt="Картинка">
document.getElementById('imageInput').style.input__1 = 'input__2';
Разблокировка всех полей формы
Разблокируйте все поля внутри формы с id="myForm".
<form id="myForm">
<input type="text" value="Поле 1" disabled>
<input type="email" value="test@test.com" disabled>
<textarea disabled>Текст</textarea>
<button type="submit" disabled>Отправить</button>
</form>
const form = document.getElementById("myForm");
const formElements = form.input__1;
for (let i = 0; i < formElements.length; i++) {
formElements[i].input__2 = false;
}
Блокировка поля ввода файла
Заблокируйте поле для выбора файла (input type="file") с id="fileInput".
<input type="file" id="fileInput">
document.getElementById(input__1).input__2 = true;
Блокировка радиокнопок
Заблокируйте все радиокнопки с именем "gender".
<input type="radio" name="gender" value="male"> Мужской
<input type="radio" name="gender" value="female"> Женский
const radioButtons = document.querySelectorAll("input__1");
radioButtons.forEach(function(radioButton) {
radioButton.disabled = input__2;
});
Блокировка textarea по достижению лимита символов
Заблокируйте текстовую область (textarea) с id="myTextarea", когда количество введенных символов достигнет или превысит 50.
<textarea id="myTextarea" maxlength="50"></textarea>
document.getElementById("myTextarea").addEventListener("input", function() {
this.disabled = this.value.input__1 input__2 50;
});
Блокировка/разблокировка поля в зависимости от выбора в другом select
Сделайте так, чтобы поле с id="cityInput" блокировалось, если в списке (id="countrySelect") выбрана опция "Не выбрано".
<select id="countrySelect">
<option value="">Не выбрано</option>
<option value="usa">США</option>
<option value="canada">Канада</option>
</select>
<input type="text" id="cityInput" placeholder="Введите город" disabled>
document.getElementById("countrySelect").addEventListener("change", function() {
const cityInput = document.getElementById("cityInput");
cityInput.disabled = this.input__1 input__2 "";
});
Динамическая блокировка/разблокировка полей
Создайте функцию `toggleField`, которая принимает ID элемента и булево значение (true/false) и блокирует/разблокирует элемент с этим ID.
<input type="text" id="field1" value="Поле 1">
<input type="text" id="field2" value="Поле 2" disabled>
<button onclick="toggleField('field1', true)">Заблокировать поле 1</button>
<button onclick="toggleField('field2', false)">Разблокировать поле 2</button>
function toggleField(input__1, shouldDisable) {
document.getElementById(id).disabled = input__2;
}
Блокировка кнопки при невалидной форме
Заблокируйте кнопку отправки (id="submitBtn") если форма (id="myForm2") не проходит валидацию (свойство `checkValidity()` возвращает `false`).
<form id="myForm2">
<input type="email" id="emailInput2" required>
<button type="submit" id="submitBtn">Отправить</button>
</form>
document.getElementById("myForm2").addEventListener("input", function() {
const submitBtn = document.getElementById("submitBtn");
submitBtn.disabled = !this.input__1();
});