Не могу сделать так чтобы при заполненных двух input можно было только нажать sabmit

Рейтинг: 0Ответов: 1Опубликовано: 06.03.2023
import { throttle } from "lodash";

const form = document.querySelector(".feedback-form");
const feedbackInput = document.querySelector(".feedback-form input");
const feedbackMessage = document.querySelector(".feedback-form textarea");

const formEl = function () {
  localStorage.setItem(
    "feedback-form-state",
    JSON.stringify({
      email: feedbackInput.value,
      message: feedbackMessage.value,
    })
  );
};

const getFeedBack = function () {
  const data = JSON.parse(localStorage.getItem("feedback-form-state"));
  if (!data) return;
  feedbackInput.value = data.email;
  feedbackMessage.value = data.message;
};

const submit = function (evt) {
  evt.preventDefault();
  console.log({
    email: feedbackInput.value,
    message: feedbackMessage.value,
  });
  form.reset();
  localStorage.clear();
};

feedbackInput.addEventListener("input", throttle(formEl, 500));
feedbackMessage.addEventListener("input", throttle(formEl), 500);
form.addEventListener("submit", submit);

getFeedBack();

Ответы

▲ 0Принят

Можно при submit делать проверку типа

feedbackInput.value.trim() != "" && feedbackMessage.value.trim() != ""

и если проверка не проходит не делать submit а что-нибудь другое (ну или вообще ничего)