当前位置:首页 > 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实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现选项卡

js实现选项卡

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

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…