当前位置:首页 > JavaScript

js实现表单验证提交表单提交

2026-04-04 00:41:06JavaScript

表单验证与提交的 JavaScript 实现

基本表单验证

通过监听表单的 submit 事件,阻止默认提交行为,验证通过后手动提交表单。

document.getElementById('myForm').addEventListener('submit', function(event) {
  event.preventDefault();

  const username = document.getElementById('username').value;
  const email = document.getElementById('email').value;

  if (username.trim() === '') {
    alert('用户名不能为空');
    return;
  }

  if (!/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/.test(email)) {
    alert('请输入有效的邮箱地址');
    return;
  }

  this.submit();
});

实时验证反馈

在输入时实时验证并显示错误信息,提升用户体验。

const inputs = document.querySelectorAll('#myForm input');
inputs.forEach(input => {
  input.addEventListener('blur', function() {
    const errorElement = document.getElementById(`${this.id}Error`);

    if (this.value.trim() === '' && this.required) {
      errorElement.textContent = '此字段为必填项';
    } else {
      errorElement.textContent = '';
    }
  });
});

使用约束验证API

利用HTML5内置的验证属性和API,减少自定义验证代码。

function validateForm() {
  const form = document.getElementById('myForm');
  if (!form.checkValidity()) {
    form.reportValidity();
    return false;
  }
  return true;
}

AJAX表单提交

使用fetch API实现异步表单提交,处理服务器响应。

document.getElementById('myForm').addEventListener('submit', async (e) => {
  e.preventDefault();

  const formData = new FormData(e.target);

  try {
    const response = await fetch('/submit', {
      method: 'POST',
      body: formData
    });

    const result = await response.json();
    if (result.success) {
      alert('提交成功');
    } else {
      alert(result.message || '提交失败');
    }
  } catch (error) {
    alert('网络错误');
  }
});

表单重置处理

提交成功后重置表单状态。

function resetForm() {
  document.getElementById('myForm').reset();
  document.querySelectorAll('.error-message').forEach(el => {
    el.textContent = '';
  });
}

密码强度验证

实现密码复杂度验证功能。

js实现表单验证提交表单提交

function checkPasswordStrength(password) {
  const strongRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})/;
  const mediumRegex = /^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})/;

  if (strongRegex.test(password)) return '强';
  if (mediumRegex.test(password)) return '中';
  return '弱';
}

这些方法涵盖了表单验证和提交的主要场景,可以根据实际需求组合使用或单独实现。

标签: 表单js
分享给朋友:

相关文章

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…