广告
返回顶部
首页 > 资讯 > 精选 >如何用JavaScript实现表单验证
  • 953
分享到

如何用JavaScript实现表单验证

2023-06-30 16:06:16 953人浏览 泡泡鱼
摘要

这篇“如何用javascript实现表单验证”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何用JavaScript实现表单

这篇“如何用javascript实现表单验证”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何用JavaScript实现表单验证”文章吧。

一、JavaScript 表单验证

html 表单验证可以通过 JavaScript 来完成。

以下实例代码用于判断表单字段(fname)值是否存在, 如果不存在,就弹出信息,阻止表单提交:

function validateFORM() {    var x = document.forms["myForm"]["fname"].value;    if (x == null || x == "") {        alert("需要输入名字。");        return false;    }}

以上 JavaScript 代码可以通过 HTML 代码来调用:

<form name="myForm" action="demo_form.PHP" onsubmit="return validateForm()" method="post">名字: <input type="text" name="fname"><input type="submit" value="提交"></form>

HTML 表单验证也可以通过浏览器来自动完成。

如果表单字段 (fname) 的值为空, required 属性会阻止表单提交:

<form action="demo_form.php" method="post">  <input type="text" name="fname" required="required">  <input type="submit" value="提交"></form>

Internet Explorer 9 及更早 IE 浏览器不支持表单自动验证。

1、数据验证

数据验证用于确保用户输入的数据是有效的。

典型的数据验证有:

  • 必需字段是否有输入?

  • 用户是否输入了合法的数据?

  • 在数字字段是否输入了文本?

大多数情况下,数据验证用于确保用户正确输入数据。

数据验证可以使用不同方法来定义,并通过多种方式来调用。

1、必填(或必选)项目

下面的函数用来检查用户是否已填写表单中的必填(或必选)项目。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题):

function validateForm(){  var x=document.forms["myForm"]["fname"].value;  if (x==null || x=="")  {    alert("姓必须填写");    return false;  }}

以上函数在 form 表单提交时被调用:

<form name="myForm" action="demo-form.php" onsubmit="return validateForm()" method="post">姓: <input type="text" name="fname"><input type="submit" value="提交"></form>

2、E-mail 验证

下面的函数检查输入的数据是否符合电子邮件地址的基本语法。

意思就是说,输入的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的首字符,并且 @ 之后需有至少一个点号:

function validateForm(){  var x=document.forms["myForm"]["email"].value;  var atpos=x.indexOf("@");  var dotpos=x.lastIndexOf(".");  if (atpos<1 || dotpos=x.length){    alert("不是一个有效的 e-mail 地址");    return false;  }}</atpos+2>

下面是连同 HTML 表单的完整代码:

<form name="myForm" action="demo-form.php" onsubmit="return validateForm();" method="post">    Email: <input type="text" name="email">    <input type="submit" value="提交"></form>
  • 服务端数据验证是在数据提交到服务器上后再验证。

  • 客户端数据验证 side validation是在数据发送到服务器前,在浏览器上完成验证。

2、约束验证

HTML5 新增了 HTML 表单的验证方式:约束验证(constraint validation)。

约束验证是表单被提交时浏览器用来实现验证的一种算法

HTML 约束验证基于:

  • HTML 输入属性

  • CSS 伪类选择器

  • DOM 属性和方法

1、约束验证 HTML 输入属性
  • disabled:规定输入的元素不可用

  • max:规定输入元素的最大值

  • min:规定输入元素的最小值

  • pattern:规定输入元素值的模式

  • required:规定输入元素字段是必需的

  • type :规定输入元素的类型

完整列表,请查看 HTML 输入属性。

2、约束验证 CSS 伪类选择器
  • :disabled:选取属性为 "disabled" 属性的 input 元素

  • :invalid:选取无效的 input 元素

  • :optional:选择没有"required"属性的 input 元素

  • :required:选择有"required"属性的 input 元素

  • :valid:选取有效值的 input 元素

完整列表,请查看 CSS 伪类。

二、JavaScript 验证 api

约束验证 DOM 方法

checkValidity():如果 input 元素中的数据是合法的返回 true,否则返回 false。

1、checkValidity() 方法

<input id="id1" type="number" min="100" max="300" required><button onclick="myFunction()">验证</button> <p id="demo"></p> <script>function myFunction() {    var inpObj = document.getElementById("id1");    if (inpObj.checkValidity() == false) {        document.getElementById("demo").innerHTML = inpObj.validationMessage;    }}</script>

约束验证 DOM 属性

  • validity:布尔属性值,返回 input 输入值是否合法

  • validationMessage:浏览器错误提示信息

  • willValidate:指定 input 是否需要验证

Validity 属性

input 元素的 validity 属性包含一系列关于 validity 数据属性:

  • customError:设置为 true, 如果设置了自定义的 validity 信息。

  • patternMismatch:设置为 true, 如果元素的值不匹配它的模式属性。

  • rangeOverflow:设置为 true, 如果元素的值大于设置的最大值。

  • rangeUnderflow:设置为 true, 如果元素的值小于它的最小值。

  • stepMismatch:设置为 true, 如果元素的值不是按照规定的 step 属性设置。

  • tooLong:设置为 true, 如果元素的值超过了 maxLength 属性设置的长度。

  • typeMismatch:设置为 true, 如果元素的值不是预期相匹配的类型。

  • valueMissing:设置为 true,如果元素 (required 属性) 没有值。

  • valid:设置为 true,如果元素的值是合法的。

如果输入的值大于 100,显示一个信息:

<input id="id1" type="number" max="100"><button onclick="myFunction()">验证</button> <p id="demo"></p> <script>function myFunction() {    var txt = "";    if (document.getElementById("id1").validity.rangeOverflow) {       txt = "输入的值太大了";    }    document.getElementById("demo").innerHTML = txt;}</script>

2、setCustomValidity

setCustomValidity():设置 input 元素的 validationMessage 属性,用于自定义错误提示信息的方法。

使用 setCustomValidity 设置了自定义提示后,validity.customError 就会变成true,则 checkValidity 总是会返回false。如果要重新判断需要取消自定义提示,方式如下:

setCustomValidity('') setCustomValidity(null) setCustomValidity(undefined)

以下实例如果输入信息不合法,则返回错误信息:

var inpObj = document.getElementById("id1");inpObj.setCustomValidity(''); // 取消自定义提示的方式if (inpObj.checkValidity() == false) {    if(inpObj.value==""){        inpObj.setCustomValidity("不能为空!");    }else if(inpObj.value<100 || inpObj.value>300){        inpObj.setCustomValidity("请重新输入数值(100~300之间)!");    }    document.getElementById("demo").innerHTML = inpObj.validationMessage;} else {    document.getElementById("demo").innerHTML = "输入正确";}

三、表单文本框自动验证

(function(){       if(window.addEventListener) window.addEventListener("load",init,false);       else if(window.attachEvent) window.attachEvent("onload",init);              function init(){       for(var i=0;i)       {           var f=document.forms[i];//第i个form           var needValidation = false;// Assume ,for now,that this form does not need any validation                       for(var j=0;j)           {               e = f.elements[j];                               if(e.type!="text") continue;               var pattern = e.getAttribute("pattern");               var required = e.getAttribute("required")!=null;               //See if it has attribute that require validation               if(required&&!pattern){               pattern = "<a href="https://www.cnblogs.com/springsnow/p/$s" rel="external nofollow"   target="_blank">\\s</a>";                e.setAttribute("pattern",pattern);               }                if(e.pattern){               e.onchange = validateOnChange;                               needsValidation = true;               }          }       if(needValidation) f.onsubmit = validateOnSubmit;        }        }      function validateOnChange()        {   var textfield = this;            var pattern = textfield.getAttribute("pattern");            var value = textfield.value;                         if(value.search(pattern)==-1) textfield.classname = "invalid";            else textfield.classname = "valid";        }      function validateOnSubmit()        {            var invalid = false;            for(var i=0;i<this.elements.length;i++)               {                  var e = this.elements[i];                  if(e.type =="text" && e.onchange == validateOnChange){                    e.onchange();                    if(e.classname == "invalid") invalid = true;                   }                }            if(invalid){             alert("The form is incompletely or incorrectly filled out.\n "+"Please correct the highlighted field and try again");             return false;            }        }})();</f.elements.length;j++</document.forms.length;i++

调用:

<head><meta Http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Untitled Document</title><style >    input.invalid { background-color:#fa0;}</style></head> <body><form action="test.asp">Name:<input type="text" name="name" required  /><br />email:<input type="text" name="email" pattern="^\s*\w+@\w+\.\w+\s*$" /><br />zipcode:<input type="text" name="zip" pattern = "^\s*\d{5}\s*$" />unvalidated:<input type="text" onchange='alert("test")' /><br /><input type="submit" /></form>

以上就是关于“如何用JavaScript实现表单验证”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: 如何用JavaScript实现表单验证

本文链接: https://www.lsjlt.com/news/330109.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何用JavaScript实现表单验证
    这篇“如何用JavaScript实现表单验证”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何用JavaScript实现表单...
    99+
    2023-06-30
  • JavaScript实现表单验证
    目录一、JavaScript 表单验证1、数据验证2、约束验证1、约束验证 HTML 输入属性2、约束验证 CSS 伪类选择器二、JavaScript 验证 API1、checkVa...
    99+
    2022-11-13
  • 如何使用JavaScript实现表单验证
    本篇内容介绍了“如何使用JavaScript实现表单验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、...
    99+
    2022-10-19
  • Javascript中如何实现表单验证
    本篇文章为大家展示了Javascript中如何实现表单验证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 检查一段字符串是否全由数字组成: ﹤ scr...
    99+
    2022-10-19
  • JavaScript实现表单验证示例
    HTML表单(form)通常用于收集用户信息,例如姓名,电子邮件地址,位置,年龄等。 但是很可能某些用户可能不会输入您期望的数据。HTML表单验证可以通过JavaScript完成。 ...
    99+
    2022-11-13
  • JavaScript实现表单验证案例
    本文实例为大家分享了JavaScript实现表单验证的具体代码,供大家参考,具体内容如下 需求 有如下注册页面,对表单进行校验,如果输入的用户名、密码、手机号符合规则,则允许提交;...
    99+
    2022-11-13
  • JavaScript怎么实现表单验证
    这篇文章主要介绍“JavaScript怎么实现表单验证”,在日常操作中,相信很多人在JavaScript怎么实现表单验证问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么实现表单验证”的疑...
    99+
    2023-07-02
  • JavaScript实现简单表单验证案例
    本文实例为大家分享了JavaScript实现简单表单验证的具体代码,供大家参考,具体内容如下 一.需求分析 要实现的功能: 1.出现如下图所示的内容:(HTML和CSS完成) 2....
    99+
    2022-11-13
  • Javascript中怎么实现表单验证
    这篇文章将为大家详细讲解有关Javascript中怎么实现表单验证,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.表单项不能为空: ﹤ scri...
    99+
    2022-10-19
  • layui如何实现表单验证
    这篇文章主要介绍layui如何实现表单验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在网上看到很多validform和layer配合的验证方式,但是觉得写的不好,不清不楚的,于是...
    99+
    2022-10-19
  • 如何实现JS表单验证
    这篇文章主要介绍了如何实现JS表单验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先晒图index.html<!DOCTYPE&nb...
    99+
    2022-10-19
  • jQuery如何实现表单验证
    这篇文章主要为大家展示了“jQuery如何实现表单验证”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现表单验证”这篇文章吧。具体代码如下所示:...
    99+
    2022-10-19
  • html5如何实现表单验证
    这篇文章主要介绍html5如何实现表单验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在深人探讨表单验证之前,让我们先思考一下表单验证的真实含义。就其核心而言,表单验证是一套系统,...
    99+
    2022-10-19
  • JavaScript表单验证实现过程详解
    目录一. 作用二. 需求三. 实现一. 作用 如果没有表单验证,错误的数据就会发往服务端,会造成服务端压力过大; 所以在前端对数据进行过滤,以减轻服务端压力; 二. 需求 1. 当输...
    99+
    2023-01-30
    JavaScript表单验证 JS表单验证
  • jQuery实现表单验证
    使用jQuery实现表单验证,供大家参考,具体内容如下 register.html <!DOCTYPE html> <html lang="en"> &l...
    99+
    2022-11-12
  • JavaScript表单验证实例分析
    这篇文章主要介绍了JavaScript表单验证实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript表单验证实例分析文章都会有所收获,下面我们一起来看看吧。...
    99+
    2022-10-19
  • Javascript如何实现表单检验
    本文小编为大家详细介绍“Javascript如何实现表单检验”,内容详细,步骤清晰,细节处理妥当,希望这篇“Javascript如何实现表单检验”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。要求:用户名不为空,且...
    99+
    2023-07-02
  • Angular8如何实现表单及其验证
    小编给大家分享一下Angular8如何实现表单及其验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!正文(一)、新建表单(模板表...
    99+
    2022-10-19
  • jquery中validate如何实现表单验证
    这篇文章主要介绍了jquery中validate如何实现表单验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、目的为了更好地实现人机交互...
    99+
    2022-10-19
  • Ajax如何实现表单验证功能
    本篇内容主要讲解“Ajax如何实现表单验证功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ajax如何实现表单验证功能”吧! 兼...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作