@Firpso

Как заполнить форму на сайте через JS?

Здравствуйте!
Есть сайт: клик

Мне нужно, через JS, заполнить поле "Введите адрес почты".
Как то можно это сделать?

Получить Value с поля я могу, через следующий скрипт:
const emailInput = document.querySelector('input[name="email"]');
if (emailInput) {
  const emailValue = emailInput.value;
  console.log(emailValue); // Вывести значение в консоль
} else {
  console.log("Поле ввода email не найдено.");
}


Но вот изменить значение через emailInput.Value не получается:

const emailInput = document.querySelector('input[name="email"]');
if (emailInput) {
  emailInput.value = "новое_значение@example.com";
} else {
  console.log("Поле ввода email не найдено.");
}


То есть оно как бы меняется, но сразу возвращается старое, когда я тыкаю по странице.
  • Вопрос задан
  • 169 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Вот тебе универсальная функция:
function setValue(element, value, options) {
  if(typeof element === 'string') 
    element = document.querySelector(element);

  options = Object.assign({
    bubbles: true
  }, options);

  element.dispatchEvent(new MouseEvent('mousedown', options));
  element.dispatchEvent(new MouseEvent('mouseup', options));
  element.dispatchEvent(new MouseEvent('click', options));
  element.dispatchEvent(new Event('focus', options));
  element.dispatchEvent(new Event('keydown', options));
  element.dispatchEvent(new Event('keypress', options));

  element.value = value;

  element.dispatchEvent(new Event('input', options));
  element.dispatchEvent(new Event('keyup', options));
  element.dispatchEvent(new Event('change', options));

  setTimeout(() => element.dispatchEvent(new Event('blur', options)));

  return element;
}

setValue('input[name="email"]', 'новое_значение@example.com')


Половина событий в данном случае может быть лишней, но может где-то ещё пригодиться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы