You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS新手求助:表单验证通过后触发提交按钮动画实现方案

问题:表单验证通过后才触发按钮动画

我是JavaScript入门开发者,希望点击提交按钮时,仅当表单验证通过的情况下运行按钮动画函数。以下是我的代码:

HTML代码

<form id="contact-form" method="post">
...
<button class="btn" type="submit" id="submit" name="submit">Send</button>
</form>

JavaScript代码

const name = document.getElementById("name");
const email = document.getElementById("email");
const message = document.getElementById("message");
const contactForm = document.getElementById("contact-form");
const errorElement = document.getElementById("error");
const successMsg = document.getElementById("success-msg");
const submitBtn = document.getElementById("submit");

const validate = (e) => {
  e.preventDefault();

  if (name.value.length < 3) {
    errorElement.innerHTML =
      "Your name should be at least three characters long.";
    return false;
  }

  ... /*various other rules for form fields */

  if (message.value.length < 15) {
    errorElement.innerHTML = "Please write a longer message.";
    return false;
  }

  errorElement.innerHTML = "";
  successMsg.innerHTML =
    "Thank you! I will get back to you as soon as possible.";

  e.preventDefault();
  setTimeout(function () {
    successMsg.innerHTML = "";
    document.getElementById("contact-form").reset();
  }, 6000);

  return true;
};

const emailIsValid = (email) => {
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
};

submitBtn.addEventListener("click", validate);

// Event listeners

/* $('.btn').on('click', toggleBtn); */

/* THE ANIMATION TRIGGERED BY CLASS CHANGE */
function toggleBtn() {
  alert("working");
  btn = this;
  btn.classList.add("is-active");
  setTimeout(function () {
    btn.classList.remove("is-active");
  }, 2500);
}

我尝试过多种if语句组合,但始终无法实现需求,恳请各位提供帮助!


内容的提问来源于stack exchange,提问作者Matt Rudd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:27:25