原生js 实现表单验证功能

yizhihongxing

下面是关于“原生js实现表单验证功能”的完整攻略:

目录:

  • 需求分析和实现思路
  • HTML结构布局
  • JS代码实现
  • 示例说明

需求分析和实现思路

表单验证功能是Web开发中必不可少的功能之一,实现表单验证的方法有很多种,包括使用第三方库(如jQuery、Bootstrap等),也可以使用原生的JS来实现。下面是一个原生JS实现表单验证的基本思路:

  1. 获取表单元素。
  2. 监听表单提交事件。
  3. 在表单提交事件的监听函数中,根据表单元素的值执行相应的验证逻辑。
  4. 如果验证成功,则提交表单;否则,错误提示。

HTML结构布局

下面是一个简单的表单结构示例:

<form>
  <div>
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username">
  </div>
  <div>
    <label for="password">密码:</label>
    <input type="password" id="password" name="password">
  </div>
  <div>
    <button type="submit">登录</button>
  </div>
</form>

JS代码实现

下面是一个使用原生JS实现表单验证功能的代码示例:

const form = document.querySelector('form')

form.addEventListener('submit', (event) => {
  event.preventDefault() // 阻止表单提交

  const username = form.elements.username.value
  const password = form.elements.password.value

  // 验证用户名和密码是否为空
  if (username.trim() === '') {
    showError('请输入用户名')
    return
  }
  if (password.trim() === '') {
    showError('请输入密码')
    return
  }

  // 验证通过,提交表单
  form.submit()
})

function showError(message) {
  const div = document.createElement('div')
  div.className = 'error'
  div.textContent = message
  form.appendChild(div)
}

在上面的代码实现中,我们首先获取了表单元素,并监听了表单提交事件。然后,在表单提交事件的监听函数中,我们通过form.elements获取了表单中的用户名和密码值,并进行了非空验证。如果表单验证通过,则调用form.submit()方法提交表单。如果验证不通过,则调用showError()方法来显示错误提示。

其中,showError()方法用于在表单中添加一个错误提示元素。该方法接收一个参数message,用于指定要显示的错误提示消息。

示例说明

下面提供两个示例,分别演示了如何使用原生JS实现表单验证:

示例一:实现邮箱和手机号验证

const form = document.querySelector('form')

form.addEventListener('submit', (event) => {
  event.preventDefault() // 阻止表单提交

  const email = form.elements.email.value
  const phone = form.elements.phone.value

  // 验证邮箱和手机号是否填写正确
  const emailRegExp = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/
  const phoneRegExp = /^1[3456789]\d{9}$/
  if (!emailRegExp.test(email)) {
    showError('请输入正确的邮箱')
    return
  }
  if (!phoneRegExp.test(phone)) {
    showError('请输入正确的手机号')
    return
  }

  // 验证通过,提交表单
  form.submit()
})

function showError(message) {
  const div = document.createElement('div')
  div.className = 'error'
  div.textContent = message
  form.appendChild(div)
}

在上面的示例中,我们扩展了表单验证功能,实现了邮箱和手机号的验证。在表单提交事件的监听函数中,我们首先获取了表单中的邮箱和手机号值。然后,我们使用正则表达式来验证邮箱和手机号是否填写正确。如果验证失败,则调用showError()方法显示错误提示信息。如果验证通过,则调用form.submit()方法提交表单。

示例二:实现密码复杂度验证

const form = document.querySelector('form')

form.addEventListener('submit', (event) => {
  event.preventDefault() // 阻止表单提交

  const password = form.elements.password.value

  // 验证密码是否符合要求
  const passwordRegExp = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/
  if (!passwordRegExp.test(password)) {
    showError('密码必须包含大小写字母和数字,长度只能在8-16个字符之间')
    return
  }

  // 验证通过,提交表单
  form.submit()
})

function showError(message) {
  const div = document.createElement('div')
  div.className = 'error'
  div.textContent = message
  form.appendChild(div)
}

在上面的示例中,我们扩展了表单验证功能,实现了密码复杂度的验证。在表单提交事件的监听函数中,我们首先获取了表单中的密码值。然后,我们使用正则表达式来验证密码是否符合要求。如果验证失败,则调用showError()方法显示错误提示信息。如果验证通过,则调用form.submit()方法提交表单。

希望以上示例能够帮助你理解如何使用原生JS实现表单验证功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生js 实现表单验证功能 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript实现网络测速的方法详解

    JavaScript实现网络测速的方法详解 什么是网络测速 网络测速,顾名思义就是测量网络的速度,即数据在网络中传输的速度。对于用户来说,网络速度的快慢直接会影响到用户体验,因此网络测速也成为了一个重要的测试方法。 JavaScript实现网络测速的方法 使用XMLHttpRequest XMLHttpRequest是JavaScript内置的对象,可以用来…

    JavaScript 2023年5月28日
    00
  • 详解JavaScript编程中正则表达式的使用

    详解JavaScript编程中正则表达式的使用 正则表达式是指用来匹配字符组成的一种模式。在JavaScript编程中,正则表达式被广泛应用于对文本数据的处理。本文将详细讲解JavaScript编程中正则表达式的使用,帮助读者掌握相关知识。 正则表达式的基础语法 正则表达式的基础语法是由若干个字符和特殊字符组成的模式,用于对文本进行匹配和处理。一些常用的正则…

    JavaScript 2023年6月10日
    00
  • js实现购物车功能

    JS实现购物车功能的攻略分为以下步骤: 1. 创建基础页面结构 首先需要创建一个基础页面结构,用来展示商品列表、购物车和结算按钮等元素。可以通过HTML和CSS实现页面的布局和样式。在页面上创建一个购物车DOM元素,以便后续通过JavaScript动态地向购物车添加商品。 2. 加载商品数据 可以通过AJAX或其他请求方式,从服务器获取商品数据并渲染到页面上…

    JavaScript 2023年6月11日
    00
  • JavaScript ES6中class定义类实例方法

    首先我们需要了解一下ES6中class定义类实例方法的基本语法。在ES6中,我们可以使用class语法来定义类。类中可以定义实例方法,与函数类似,实例方法可以访问类的属性和其他实例方法。 下面是定义一个简单的类,并在其中定义一个实例方法的示例代码: class Person { constructor(name, age) { this.name = nam…

    JavaScript 2023年6月10日
    00
  • JS检测页面中哪个HTML标签触发点击事件的方法

    要检测页面中哪个HTML标签触发了点击事件,我们可以使用JavaScript语言提供的事件监听函数来实现。以下是实现的步骤: 获取页面中所有的HTML标签 我们可以使用document.querySelectorAll()方法获取页面中所有的HTML标签,该方法返回一个NodeList对象,我们可以使用forEach()方法遍历其中的每一个标签。 示例代码:…

    JavaScript 2023年6月10日
    00
  • 深入浅析Angular SSR

    关于“深入浅析Angular SSR”的完整攻略,下面是详细的讲解: 什么是Angular SSR Angular SSR(Server-Side Rendering)是指在服务端执行Angular应用程序并生成HTML响应的过程。通俗的说,就是在服务端预渲染且构造HTML并且在传回浏览器渲染时设置完整的、原始的HTML文档。这样可以提高应用程序的首次加载速…

    JavaScript 2023年6月11日
    00
  • 可以读取EXCEL文件的js代码第1/2页

    下面我来详细讲解一下如何读取Excel文件的JS代码攻略。 1. 使用JavaScript的FileReader对象 使用JavaScript的FileReader对象可以读取文件。下面是读取Excel文件的演示代码。 var reader = new FileReader(); reader.onload = function (e) { var data…

    JavaScript 2023年5月27日
    00
  • 通过js控制时间,一秒一秒自己动的实例

    下面是关于“通过JS控制时间,一秒一秒自己动”的完整攻略: 步骤一:HTML部分 首先,在HTML部分创建一个DIV元素并添加一个id,比如 #countdown。这个元素将用于显示倒计时的值。 <div id="countdown"></div> 步骤二:CSS部分 接下来,需要为倒计时的DIV元素添加样式。样式…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部