原生JS写表单验证提交功能
先上效果图:

表单的基础内容就是昵称判断、手机号判断、邮箱判断、身份证号码判断,这里是用到正则验证检验格式。
页面的表单写法就是一个form的提交。输入框用input来实现,输入内容用value来获取。每个输入框用唯一的ID名字来标记:
<body>
<div class="content">
<div class="title">用户注册</div>
<form onsubmit="return false">
<div><label><span>*</span>昵称:</label><input onfocus="clearErr()" id="name" type="text" placeholder="只能包含中文、英文、数字和下划线"></div>
<div><label><span>*</span>手机:</label><input onfocus="clearErr()" id="phone" type="text" placeholder=""></div>
<div><label>邮箱:</label><input onfocus="clearErr()" id="email" type="text"></div>
<div><label>身份证号:</label><input onfocus="clearErr()" id="cardCode" type="text"></div>
<div><label>毕业学校:</label><input onfocus="clearErr()" id="school" type="text"></div>
<div><button id="registerBtn" type="submit">注册</button></div>
<div id="errContent"></div>
</form>
</div>
</body>
通过JS来实现输入验证,和正则验证:
<script>
window.onload = function(){
var oRegisterBtn = document.getElementById('registerBtn');
var oName = document.getElementById('name');
var oPhone = document.getElementById('phone');
var oEmail = document.getElementById('email');
var oCardCode = document.getElementById('cardCode');
var oschool = document.getElementById('school');
var oErrContent = document.getElementById('errContent');
oRegisterBtn.onclick = function(){
var doRegister = true;
var errStr = "";
if(!oName.value){
errStr += "用户名不能为空</br>";
doRegister = false;
}else if(/[^\u4e00-\u9fa5\w]/.test(oName.value)){
errStr += "用户名格式不对" +"</br>";
doRegister = false;
}
if(!oPhone.value){
errStr += "手机号不能为空</br>";
doRegister = false;
}else if(!/^1[3|4|5|8][0-9]\d{4,8}$/.test(oPhone.value)){
errStr += "手机号格式不对</br>";
doRegister = false;
}
if(oEmail.value && !/^\w+@[a-z0-9]+(\.[a-z]+){1,3}$/.test(oEmail.value)){
errStr += "邮箱格式不对</br>";
doRegister = false;
}
if(oCardCode.value && !/[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x/.test(oCardCode.value)){
errStr += "身份证号式不对</br>";
doRegister = false;
}
if(doRegister){
//此处写相应的ajax提交
alert("您的资料已提交...");
}else{
oErrContent.innerHTML = errStr;
}
}
}
function clearErr(){
document.getElementById('errContent').innerHTML = "";
}
</script>
样式内容也简单贴上吧:
<style>
*{
margin:0;
padding:0;
}
.content{
width:800px;
margin:50px auto;
}
.title{
font-size:18px;
font-weight:bold;
padding-left:340px;
margin-bottom:30px;
}
input{
border:1px solid #a9a9a9;
height:34px;
line-height:34px;
width:550px;
margin-bottom:20px;
padding-left:5px;
}
label{
width:120px;
text-align:right;
display:inline-block;
}
#registerBtn{
background:#3498db;
color:#fff;
font-size:14px;
text-align:center;
width:100px;
line-height:34px;
border:none 0;
cursor:pointer;
margin:20px 20px 0 0;
margin-left:120px;
}
label span{
color:red;
}
#errContent{
padding:20px 0 0 30px;
text-align:center;
}
</style>
表单验证用到的地方多,也有很多人写过,所以我这里只是用更简洁的方法来实现。同理可以推陈出新很多内容
原生JS写表单验证提交功能的更多相关文章
- 原生js制作表单验证,基本的表单验证方法
表单验证是web前端最常见的功能之一,也属于前端开发的基本功.自己完成一个表单验证的开发,也有助于加深对字符串处理和正则表达式的理解. 基本的表单验证包括如:字母验证.数字验证.字母和数字验证.汉字验 ...
- 原生js的表单验证
最近在学原生的js,把一些练手的代码往博客放一放,权当积累经验,若有错漏,或是觉得浅显,大家不要见怪. 这是一个原生js编写的简单的表单验证: <!DOCTYPE html><htm ...
- 表单验证提交——submit与button
之前做东西接触过表单验证提交,但是都是为了完成工作,做完就做完了,没有注过表单验证提交有几种方法,各方法都有啥区别.今天瞎折腾了一下,对他们研究了一下,如下是我个人的理解: submit: 从字面上看 ...
- 第一百五十四节,封装库--JavaScript,表单验证--提交验证
封装库--JavaScript,表单验证--提交验证 将表单的所有必填项,做一个判断函数,填写正确时返回布尔值 最后在提交时,判断每一项是否正确,全部正确才可以 提交 html <div id= ...
- ★★★【卡法 常用js库】: js汇合 表单验证 cookie设置 日期格式 电话手机号码 email 整数 小数 金额 检查参数长度
[卡法 常用js库]: js汇合 表单验证 cookie设置 日期格式 电话手机号码 email 整数 小数 金额 检查参数长度 // +---------------------- ...
- 表单提交学习笔记(二)—使用jquery.validate.js进行表单验证
一.官网下载地址:http://plugins.jquery.com/validate/ 二.用法 1.在页面上进行引用 <script src="~/scripts/jquery-1 ...
- js基础-表单验证和提交
基础知识: 原始提交如下: <form action="/login" method="post" id="form1"> &l ...
- JS通用表单验证函数,基于javascript正则表达式
表单的验证在实际的开发当中是件很烦琐又无趣的事情今天在做一个小项目的时候,需要JS验证,寻找到一个比较好的东西 地址如下: http://blog.csdn.net/goodfunman/archiv ...
- JS简单表单验证
这里我是写了一个简单的注册表单验证功能,亲测有效,一起来看看吧! 首先我的HTML代码是这样的: class大家可以忽略一下,这里我项目使用的是bootstrap的样式. 输入用户名和密码用的是正则表 ...
随机推荐
- js面试必考:this
this是前端面试中必考的基础知识点,也是新手小白在做项目中经常晕头转向的问题.但其实this不难理解. 判断this指向时,记住以下几点: 判断函数类型, 1.1 如果是箭头函数,则为第一个包裹箭头 ...
- PTA的Python练习题(六)
从 第3章-8 字符串逆序 开始 1. n = str(input()) n1=n[::-1] print(n1) 2. 不是很好做这道题,自己还是C语言的思维,网上几乎也找不到什么答案 s = in ...
- js中的原生Ajax和JQuery中的Ajax
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). js中的Ajax: 参数介绍: open(String method,Str ...
- git——解决每次拉取、提交代码时都需要输入用户名和密码
在开发中我们经常需要通过 git 对代码进行拉取和提交,频繁地输入用户名和密码会带来很大的麻烦,下面就介绍一下解决git每次拉取.提交代码时都需要输入用户名和密码的方法. 很简单,只要两步骤就能实现: ...
- [蓝桥杯2017初赛]迷宫 DFS
题目描述 X星球的一处迷宫游乐场建在某个小山坡上.它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间,R表示走到右边 ...
- C语言程序编译
原来GCC的含义是GNU C Compiler,当初知识编译C语言,而现在GCC不知编译C语言,除此之外它还支持编译Ada.C++.Java.Object C.Pascal.COBOL.等等许多语言, ...
- Java--API解读之Method Summary
参考来源:Java 中静态方法 实例方法 具体方法区别与联系 JAVA Method Summary网页 * Static Method :"静态方法",直接引用,无需创建对象: ...
- kafka 副本同步细节
图片来源:咕泡学院
- 【PAT甲级】1030 Travel Plan (30 分)(SPFA,DFS)
题意: 输入N,M,S,D(N,M<=500,0<S,D<N),接下来M行输入一条边的起点,终点,通过时间和通过花费.求花费最小的最短路,输入这条路径包含起点终点,通过时间和通过花费 ...
- 4.使用Redis+Flask维护动态代理池
1.为什么使用代理池 许多⽹网站有专⻔门的反爬⾍虫措施,可能遇到封IP等问题. 互联⽹网上公开了了⼤大量量免费代理理,利利⽤用好资源. 通过定时的检测维护同样可以得到多个可⽤用代理理. 2.代理池的要 ...