Code Ready | Frontend
21.6K subscribers
1.27K photos
534 videos
17 files
999 links
Авторский канал по Frontend разработке.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Cотрудничество: @energy_c

РКН: https://clck.ru/3NJCKs
Download Telegram
🔴 Тестовый собес на Frontend-разработчика со старшим разработчиком ex. Сбер в этот четверг! 
[+ разбор 50 сложных вопросов в подарок ]

17 сентября (в этот четверг!) в 19:00 по мск
приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Frontend-разработчика!

Собеседование проведёт Даниил Дмитриев - старший разработчик в R-Vision, ex. Сбер,

Как это будет:

📂 Даниил задаст разработчику вопросы и задачи, которые могут спросить на реальном собесе

📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью

📂 В конце сможешь задать любой вопрос Даниилу и получить на него развёрнутый ответ

Эфир проходит в рамках менторской программы от ШОРТКАТ для Frontend-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы

И ты можешь посмотреть его бесплатно 🔥
Только завтра, в прямом эфире!

🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Frontend-собеседований 🔥

Переходи в бот, чтобы попасть на эфир и забрать подарок
👉 @shortcut_front_bot

Реклама.
О рекламодателе.
requestSubmit() — программная отправка формы с сохранением нативного поведения!

В HTML-формах существует два разных подхода к программному запуску отправки. Метод submit() выполняет непосредственную отправку формы, но отличается от пользовательского сценария: он не запускает constraint validation и не генерирует событие submit.
const form = document.querySelector('form');

form.submit();


Если форма содержит обработчик submit, вызванный через submit(), он не будет выполнен. Это принципиальное отличие от реального действия пользователя через submit-кнопку.
const form = document.querySelector('form');

form.addEventListener('submit', (event) => {
event.preventDefault();

console.log('Form submitted');
});

form.submit();


Для случаев, когда отправка инициируется js, но должна сохранить стандартную модель поведения HTML-форм, используется метод requestSubmit().
form.requestSubmit();


requestSubmit() запускает стандартный алгоритм отправки формы: браузер выполняет встроенную constraint validation, а после успешной проверки генерирует событие submit.

Рассмотрим форму с обязательным email-полем. Если значение отсутствует или не проходит проверку типа email, обработчик submit вызван не будет, поскольку браузер остановит процесс на этапе валидации.
<form id="profile">
<input
name="email"
type="email"
required
>

<button type="submit">
Save
</button>
</form>


После регистрации обработчика отправку можно инициировать программно, сохранив обычное поведение формы.
const form = document.querySelector('#profile');

form.addEventListener('submit', (event) => {
event.preventDefault();

const data = new FormData(form);

console.log(Object.fromEntries(data));
});

form.requestSubmit();


В отличие от submit(), метод requestSubmit() также позволяет передать конкретную submit-кнопку. Это важно для форм, где разные кнопки отправки имеют собственные параметры или меняют поведение отправки.
const saveButton = form.querySelector('.save');

form.requestSubmit(saveButton);


Переданная кнопка должна быть submit-элементом, связанным с этой формой. В этом случае учитываются такие параметры кнопки, как name, value, formaction, formenctype, formmethod и другие submit-настройки.
<form id="actions">
<input name="title" value="Example">

<button
class="save"
type="submit"
name="action"
value="save"
>
Save
</button>
</form>


В реальном приложении выбор конкретной submit-кнопки позволяет управлять поведением одной формы из разных сценариев отправки, сохраняя стандартную обработку браузера.
const form = document.querySelector('#actions');
const saveButton = form.querySelector('.save');

form.requestSubmit(saveButton);


На практике requestSubmit() применяется, когда действие пользователя необходимо инициировать из js, но при этом требуется сохранить полный жизненный цикл HTML-формы: валидацию браузера, событие submit и стандартную обработку submit-кнопки.

🔥 form.submit() и form.requestSubmit() решают разные задачи. Первый вариант выполняет прямую отправку без validation и события submit, второй запускает полноценный процесс отправки, максимально близкий к пользовательскому взаимодействию с формой. Если программная отправка должна работать так же, как обычное нажатие submit-кнопки, используйте requestSubmit().

📣 Code Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥76