封装好的一个万能检测表单的方法

下面是封装一个万能检测表单的方法的完整攻略:

步骤一:确定需求和功能

首先,我们需要明确我们需要封装的函数应该具备哪些需求和功能。一般来说,我们会希望这个函数可以完成以下功能:

  • 检测表单中各个输入框是否为空或符合要求;
  • 根据表单类型和特定需求,对表单进行不同的验证,例如:是否为手机号码、是否为合法email地址、是否为数字等等;
  • 在表单填写不符合要求时,会有提示信息反馈给用户;

步骤二:构思函数,确定传入参数

接下来,我们要开始构思如何实现这个检测表单的函数,并确定需要传入哪些参数。根据第一步的需求和功能,我们可以先确定以下几个传入参数:

  • 表单的ID:这个参数可以帮助我们获取到表单的其他信息;
  • 当前表单类型:根据表单类型和特定需求,对表单进行不同的验证;
  • 输入框为空时的错误提示信息:当表单中某个输入框为空时,提示用户的错误信息;
  • 输入框验证不通过时的错误提示信息:当表单中某个输入框输入不符合要求时,提示用户的错误信息;

步骤三:编写代码

有了需求和参数以后,我们就可以开始编写代码了。下面是一个简单的封装好的检测表单的方法的示例:

function validateForm(formId, formType, emptyErrMsg, wrongErrMsg) {
   //根据表单ID获取表单
   let form = document.getElementById(formId); 

   //获取表单中的所有input标签
   let inputs = form.getElementsByTagName("input"); 

   for (let i = 0; i < inputs.length; i++) { 
       let input = inputs[i]; //获取当前input标签

       //判断input类型
       switch (formType) {
           case "phone":
               validatePhone(input, emptyErrMsg, wrongErrMsg);
               break;
           case "email":
               validateEmail(input, emptyErrMsg, wrongErrMsg);
               break;
           default:
               break;
       }
   }
}

function validatePhone(input, emptyErrMsg, wrongErrMsg) {
   let value = input.value.trim(); 
   if (value.length == 0) { //输入框为空
       alert(emptyErrMsg);
       return;
   }
   let reg = /^1[3-9]\d{9}$/; //手机号码正则表达式
   if (reg.test(value)) { 
       alert("手机号码格式正确!");
   } else { //手机号码格式不正确
       alert(wrongErrMsg);
   }
}

function validateEmail(input, emptyErrMsg, wrongErrMsg) {
   let value = input.value.trim();
   if (value.length == 0) { //输入框为空
       alert(emptyErrMsg);
       return;
   }
   let reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,}$/; //邮箱正则表达式
   if (reg.test(value)) {  
       alert("邮箱格式正确!");
   } else { //邮箱格式不正确
       alert(wrongErrMsg);
   }
}

步骤四:示例说明

以上代码是一个简单的根据表单类型检测表单的方法,现在来看两个示例说明:

示例一:检测手机号码

首先定义一个表单:

<form id="phone-form">
   <p>请输入手机号码:</p>
   <p><input type="text" name="phone" placeholder="请输入手机号码"></p>
   <p><button type="button" onclick="validateForm('phone-form', 'phone', '手机号码不能为空!', '手机号码格式不正确!')">提交</button></p>
</form>

当输入手机号码为空时,会弹出“手机号码不能为空!”的提示信息。当输入手机号码为正确的手机号码时,会弹出“手机号码格式正确!”的提示信息。如果输入的是错误的手机号码,会弹出“手机号码格式不正确!”的提示信息。

示例二:检测邮箱

定义一个表单:

<form id="email-form">
   <p>请输入邮箱:</p>
   <p><input type="text" name="email" placeholder="请输入邮箱"></p>
   <p><button type="button" onclick="validateForm('email-form', 'email', '邮箱不能为空!', '邮箱格式不正确!')">提交</button></p>
</form>

当输入邮箱为空时,会弹出“邮箱不能为空!”的提示信息。当输入的是正确的邮箱地址时,会弹出“邮箱格式正确!”的提示信息。如果输入的是错误的邮箱地址,会弹出“邮箱格式不正确!”的提示信息。

以上就是封装一个万能检测表单的方法的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:封装好的一个万能检测表单的方法 - Python技术站

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

相关文章

  • springboot自定义yml配置文件及其外部部署过程

    首先,我们需要了解什么是YAML配置文件。YAML 是一种可读性高,用来表达数据序列化的格式。YAML 的定位是方便人类阅读的配置文件,对于机器来说,它也很容易解析。因此,SpringBoot 采用了 YAML 作为自己的配置文件格式。 下面是关于如何自定义 SpringBoot 的 YAML 配置文件及外部部署的完整攻略: 1. 在代码中加入自定义的 YA…

    other 2023年6月25日
    00
  • Android中的Parcelable序列化对象

    下面是详细讲解“Android中的Parcelable序列化对象”的完整攻略: 什么是Parcelable Parcelable是一个序列化对象的接口,在Android中,如果我们想让一个Java对象能够在不同的组件或者进程间传递,那么这个Java对象必须去实现Parcelable接口从而达到序列化的目的。与Serializable相比,Parcelable…

    other 2023年6月27日
    00
  • localstorage可以跨域吗

    当然,我很乐意为您提供有关“localstorage可以跨域吗”的完整攻略。以下是详细的步骤和两个示例: 1 localstorage可以跨域吗 localStorage是HTML5中的一种本地存储机制,它允许Web应用程序在浏览器中存储键值对。但是,localStorage是基于源的,这意味着它只能在同一源中共享。因此,localStorage不能跨域使用…

    other 2023年5月6日
    00
  • shell编程编辑工具awk

    Shell编程编辑工具awk 什么是awk awk是一种编程语言,用于处理文本文件的数据。它是一种强大的文本分析和处理工具,可在Linux和其他操作系统上使用。awk的名称是由三位创始人的名字组成的:Aho、Weinberger和Kernighan。 awk被设计为适合用于处理、转换和分析数据。使用它的主要目的是从数据文件中提取有用信息。它的语法简单,易于学…

    其他 2023年3月29日
    00
  • Spring ApplicationContext上下文核心容器深入探究

    Spring ApplicationContext上下文核心容器深入探究 什么是Spring ApplicationContext? Spring ApplicationContext是Spring框架中的一个重要组成部分。它是一个IoC容器,用于管理和组织Spring应用程序中的所有bean。ApplicationContext提供了以下功能: 加载bea…

    other 2023年6月26日
    00
  • 详解Java编程中super关键字的用法

    详解Java编程中super关键字的用法 在Java编程中,super是一个关键字,可以用来访问父类的方法和属性。本文将详细讲解super关键字的用法,以及它的常见应用场景。 1. 访问父类的方法 在子类中,我们可以使用super来访问父类中已经被重写了的方法(即同名的方法)。下面是一个示例代码: class Animal { public void mov…

    other 2023年6月26日
    00
  • mybatisplus之—basemapper

    MyBatis-Plus之BaseMapper MyBatis-Plus是MyBatis的增强工具,提供了许多实用的功能,其中一就是BaseMapper。BaseMapper是MyBatis-Plus提供一个通用Mapper接口,可以用于快开发数据访问层(DAO)本略将介绍BaseMapper的基本用法和示例。 基本用法 BaseMapper提供许多常用的数…

    other 2023年5月9日
    00
  • javascript中的void

    在JavaScript中,void是一个操作符,它可以返回undefined。以下是一个完整攻略,介绍了如何在JavaScript中使用void。 步骤1:使用void 我们可以使用void操作符来返回undefined。以下是一个示例: void 0; 在上述示例中,我们使用void操作符返回undefined。我们将0作为参数传递给void操作符,但实际…

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