纯JS实现表单验证实例

表单我实现了,input属性是text(文本框)、radio(单选按钮)、checkbox(多选按钮)的知识点,

fieldset标签(组合表单中的相关元素)、select标签(选择列表)和textarea标签(多行文本框)。

<form action="MAILTO:someone@w3school.com.cn" method="post" enctype="text/plain" onsubmit="return checkForm()">
  <h2>学生选课基本信息</h2>
  姓名:<input type="text" id="name" placeholder="yourname" size="20" onfocus="checkNameFocus()" onblur="checkNameBlur()">
  <div id="namePrompt"></div><br/>
  学号:<input type="text" id="num" placeholder="yournum" size="20" onfocus="checkNumFocus()" onblur="checkNumBlur()">
  <div id="numPrompt"></div><br/>
  性别:<label><input type="radio" name="sex" value="男" checked>男</label>
     <label><input type="radio" name="sex" value="女">女<br/></label>
  邮箱:<input type="text" id="email" placeholder="yourmail" size="20" onfocus="checkEmailFocus()" onblur="checkEmailBlur()">
  <div id="emailPrompt"></div>
  <br/>
  <fieldset class="classes" id="course" onchange="checkCourse()">
    <legend>可选课程</legend>
    <label><input name="Class" type="checkbox" value="" />算法设计</label><br/>
    <label><input name="Class" type="checkbox" value="" />人工智能</label><br/>
    <label><input name="Class" type="checkbox" value="" />编译原理</label><br/>
    <label><input name="Class" type="checkbox" value="" />机器学习</label><br/>
    <label><input name="Class" type="checkbox" value="" />计算机网络</label>
  </fieldset>
  喜欢的老师:<select name="teacher">
    <option value="0">刘老师</option>
    <option value="0">齐老师</option>
    <option value="0">李老师</option>
    <option value="0">马老师</option>
    <option value="0">肖老师</option>
  </select><br/>
  还有话说:<br/>
  <textarea id="message" name="message" placeholder="Your Message to Us" cols="50" rows="10"></textarea>
  <br/><br/>
  <button type="submit">提交</button>
  <button type="reset">重置</button>
</form> 

css样式如下图:

css这部分写的不太好,请大家批评指正。(参考的网上的一些资料,网址忘了)

*{
  margin-left:auto;
  margin-right:auto;
  max-width: 500px;
  background: #F8F8F8;
  padding: 10px;
  font: 12px Arial, Helvetica, sans-serif;
  color: #666;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
}
body,form{
  padding: 15px;
  /*width: 500px;*/
  background: #F4F4F4;
}
h2 {
  padding-bottom:2px;
   *padding:0;
font: 24px "Trebuchet MS", Arial, Helvetica, sans-serif;
padding: 20px 0px 20px 40px;
display: block;
margin: -30px -30px 10px -30px;
color: #FFF;
background: #9DC45F;
text-shadow: 1px 1px 1px #949494;
border-radius: 5px 5px 0px 0px;
-webkit-border-radius: 5px 5px 0px 0px;
-moz-border-radius: 5px 5px 0px 0px;
border-bottom:1px solid #89AF4C;
}
/*label {
display: block;
margin: 0px 0px 0px;
}*/
 select {
color: #555;
height: 30px;
line-height:12px;
width: 30%;
padding: 0px 0px 0px 10px;
margin-top: 2px;
border: 1px solid #E5E5E5;
background: #FBFBFB;
outline: 0;
-webkit-box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
box-shadow: inset 1px 1px 2px rgba(238, 238, 238, 0.2);
font: normal 12px/12px Arial, Helvetica, sans-serif;
}
.classes input{
  vertical-align:middle;
  margin-top:-2px;
  margin-bottom:1px;
  height: 35px;
}
textarea{
height:100px;
width: 90%;
padding-top: 10px;
}
button {
background-color: #9DC45F;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-border-radius: 5px;
border:none;
padding: 10px 25px 10px 25px;
color: #FFF;
text-shadow: 1px 1px 1px #949494;
}
button:hover {
background-color:#80A24A;
}
#name,#num,#email{vertical-align:middle;}/*input和图片在一行*/
#namePrompt,#numPrompt,#emailPrompt{
  vertical-align:middle;/*input和图片在一行*/
  display: inline-block;
  padding: 0px;
  color: red;
  background-color:#F4F4F4;
}
/*验证表单的格式*/
/*当鼠标放到文本框时,提示文本的样式*/
.import_prompt{
  border:solid 1px #ffcd00;
  background-color:#ffffda;
  }
下来就是js表单验证了。。。。。。
这是js验证的目标。
1.当鼠标放在姓名文本框时,提示文本及样式。
2./*当鼠标离开姓名文本框时,提示文本及样式*/ 汉字
3.当鼠标放在学号文本框时,提示文本及样式。
4./*当鼠标离开学号文本框时,提示文本及样式*/只能是数字
5.邮箱的验证,必须符合邮箱的格式。
6.表单提交时验证表单内容输入的有效性。
其中用到了正则表达式来匹配。
匹配简体中文的正则是^[\u4e00-\u9fa5]+$
匹配邮箱格式的正则是 [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
直接上代码:
[javascript] view plain copy 在CODE上查看代码片派生到我的代码片
// 通过getElementById得到相应元素
function $(id){
  return document.getElementById(id);
}
// 当鼠标放在姓名文本框时,提示文本及样式。
function checkNameFocus(){
  var userNameId=$("name");
  userNameId.className="import_prompt";
  var namePrompt=$("namePrompt");
  namePrompt.innerHTML="必须是汉字哦~";
}
/*当鼠标离开姓名文本框时,提示文本及样式*/
function checkNameBlur(){
  var namePrompt=$("namePrompt");
  namePrompt.innerHTML=null;
  var reg1=/^[\u4e00-\u9fa5]+$/;//匹配简体中文的正则表达式
  var name=$("name").value;
  // 先查看是否为空
  if(name==""){
    namePrompt.innerHTML="名字不能为空!"
    return false;
  }
  else if(!reg1.test(name)){
    var trueimg=document.createElement("img");
    trueimg.src="./formimages/false.png";
    trueimg.width="15";
    namePrompt.appendChild(trueimg);
    return false;
  }else{
    var trueimg=document.createElement("img");
    trueimg.src="./formimages/true.png";
    trueimg.width="15";
    namePrompt.appendChild(trueimg);
    return true;
  }
}
//当鼠标放在学号文本框时,提示文本及样式。
function checkNumFocus(){
  var studentNum=$("num");
  studentNum.className="import_prompt";
  var numPrompt=$("numPrompt");
  numPrompt.innerHTML="必须是0-9的10位数字哦~";
}
/*当鼠标离开学号文本框时,提示文本及样式*/
function checkNumBlur(){
  var numPrompt=$("numPrompt");
  numPrompt.innerHTML=null;
  var reg2=/^\d{10}$/;
  var xuehao=$("num").value;
  //先验证是否为空
  if(xuehao==""){
    numPrompt.innerHTML="学号不能为空!";
    return false;
  }
  else if(!reg2.test($("num").value)){//好奇怪,使用变量就变成空的了,在外边就有值。
    var trueimg=document.createElement("img");
    trueimg.src="./formimages/false.png";
    trueimg.width="15";
    numPrompt.appendChild(trueimg);
    return false;
  }
  else{
    var trueimg=document.createElement("img");
    trueimg.src="./formimages/true.png";
    trueimg.width="15";
    numPrompt.appendChild(trueimg);
    return true;
  }
}
//邮箱的验证,必须符合邮箱的格式。
function checkEmailFocus(){
  var email=$("email");
  email.className="import_prompt";
  var emailPrompt=$("emailPrompt");
  emailPrompt.innerHTML="请输入您常用的电子邮箱";
}
function checkEmailBlur(){
  var emailPro=$("emailPrompt");;
  emailPrompt.innerHTML=null;
  var emailValue=$("email").value;
  var reg3=/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/;
  //先验证是否为空
  if(emailValue==""){
    emailPrompt.innerHTML="邮箱不能为空!";
    return false;
  }
  else if(!reg3.test(emailValue)){
    var trueimg=document.createElement("img");
    trueimg.src="./formimages/false.png";
    trueimg.width="15";
    emailPrompt.appendChild(trueimg);
    return false;
  }
  else{
    var trueimg=document.createElement("img");
    trueimg.src="./formimages/true.png";
    trueimg.width="15";
    emailPrompt.appendChild(trueimg);
    return true;
  }
}
//验证复选框
function checkCourse(){
  var courses=$("course");
  var cbs = courses.getElementsByTagName("input");
  var b = false;
  for(var i=0;i<cbs.length;i++){
    if(cbs[i].type == "checkbox" && cbs[i].checked){
      b = true;
    }
  }
  if(!b){
    alert("请至少选择一门课程!!!");
    return false;
  }
}
//表单提交时验证表单内容输入的有效性
function checkForm(){
   var flagName=checkNameBlur();
   var flagNum=checkNumBlur();
   var flagEmail=checkEmailBlur();
   var flagCourse=checkCourse();
   if(flagName==true &&flagNum==true &&flagEmail==true &&flagCourse==true){
     return true;
    }
    else{
      return false;
     }
  } 

以上所述是小编给大家介绍的纯JS实现表单验证实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • javascript表单验证大全

    被 JavaScript 验证的这些典型的表单数据有以下几种: 1.用户是否已填写表单中的必填项目? 2.用户输入的邮件地址是否合法? 3.用户是否已输入合法的日期? 4.用户是否在数据域 (numeric field) 中输入了文本? 下面是用户名和密码验证代码: <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> &

  • JavaScript 基础表单验证示例(纯Js实现)

    验证思路 监听每个input控件的焦点离开(onblue),当焦点离开时调用验证函数,验证后修改第三栏文字,显示符合/不符合并返回true/false 实现代码: index.html <!DOCTYPE html> <html> <head> <title></title> <pnk rel="stylesheet" href="css.css" rel="external nofollo

  • JavaScript表单验证完美代码

    用原生JS写一个简单的表单验证 首先,是html部分 <div class="divAll"> <div id="titles">新用户注册</div> <div id="contents"> <h3>基本信息</h3> <hr width="95%" color="#f2f2f2"/> <form action=&q

  • javascript实现的简单的表单验证

    表单验证几乎是不可缺少的,有的表单验证是在后台完成的,有的则是使用JavaScript在在前端完成基本的验证,这样可以有效的减轻服务器的压力,下面就介绍一下JS实现的最简单的表单验证.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>我们</title> <script type="text/javascript

  • JavaScript表单验证的两种实现方法

    本文实例为大家分享了js表单验证的实现方法,供大家参考,具体内容如下 第一种:js表单验证 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册-个人用户</title> <meta http-equiv="pragma" content="no-cache"

  • 纯JS实现表单验证实例

    表单我实现了,input属性是text(文本框).radio(单选按钮).checkbox(多选按钮)的知识点, fieldset标签(组合表单中的相关元素).select标签(选择列表)和textarea标签(多行文本框). <form action="MAILTO:someone@w3school.com.cn" method="post" enctype="text/plain" onsubmit="return check

  • js进行表单验证实例分析

    本文实例讲述了js进行表单验证的方法.分享给大家供大家参考.具体实现方法如下: 1. 传统的表单验证代码 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/199

  • js表单验证实例讲解

    本文实例为大家分享了js表单验证,供大家参考,具体内容如下 JavaScript 可用来在数据被送往服务器前对HTML 表单中的这些输入数据进行验证. 被JavaScript 验证的这些典型的表单数据有: 1).用户是否已填写表单中的必填项目? 2).用户输入的邮件地址是否合法? 3).用户是否已输入合法的日期? 4).用户是否在数据域 (numeric field) 中输入了文本? gspan.html <html> <head> <title>表单验证实例</

  • AngularJs表单验证实例代码解析

    常用的表单验证指令如下详情: 1. 必填项验证 某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type="text" required /> 2. 最小长度 验证表单输入的文本长度是否大于某个最小值,在输入字段上使用指令ng-minleng= "{number}": <input type="text" ng-minlength="5" /> 3.

  • Angular表单验证实例详解

    表单验证 我去,我感觉我这个人其实还是一个很傻逼的一个人,老是因为拼错了一个单词或者怎么样就浪费我很长时间,这样真的不行不行,要正确对待这个问题,好了,说正题吧,angular也有表单验证minlength,maxlength,required呀这些个东西,还有也支持h5的那些验证,h5的那些验证,就是type啦,type='email',number,url呀这些,然后现在要用angular来验证,可以定义样式哈,不错,然后怎么验证呢,好的上代码 <!DOCTYPE html> <ht

  • BootStrap表单验证实例代码

    Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. 下面给大家分享bootstrap表单验证实例代码,具体代码如下所示: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@

  • jquery实现一个简单的表单验证实例

    表单验证在网站开发过程中经常遇到,我们可以使用服务器端语言验证,也可以使用客户端语言来验证.本文章向大家介绍jquery客户端验证表单的一个简单实例.实例仅作参考. <body> <form method="post" action=""> <div class="int"> <label for="username">用户名:</label> <!-- 为每个

  • JavaScript表单验证实例之验证表单项是否为空

    表单验证几乎在每一个需要注册或者登陆的网站是必不可少的,有些验证则非常的复杂,可以说是各种各样给你的要求,不过本章节只介绍一下表单中最简单的验证方式,就是判断是否为空,有些要求比较低的网站对此已经满足需要了. 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://ww

  • JS简单表单验证功能完整示例

    本文实例讲述了JS简单表单验证功能.分享给大家供大家参考,具体如下: 简单js表单验证demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

  • 原生js 实现表单验证功能

    表单验证是web前端最常见的功能之一,也属于前端开发的基本功.自己完成一个表单验证的开发,也有助于加深对字符串处理和正则表达式的理解. 基本的表单验证包括如:字母验证.数字验证.字母和数字验证.汉字验证.密码验证.日期验证.手机验证.邮箱验证,密码验证等. 现在就来完成这些验证代码的编写,先来看字母是怎么验证的.先编写需要的html代码,创建一个id为formContainer的表单元素,在里面加入需要验证英文字母的文本框和按钮,文本框后面需要一个span元素存放提示文字.如下所示: <form

随机推荐