使用JavaScript进行表单校验功能


Posted in Javascript onAugust 01, 2017

文本框校验

以下是文本框的校验步骤。

1.获取待校验的文本框value值,

2.对value值设置判定条件,使用if语句或switch语句实现。

3. 若满足条件,则校验通过,返回值为true。

4. 若不满足条件则返回值为false,替换文本输出校验的提示信息。

5. 表单获取多个验证的返回值,做逻辑运算,将参数传递给表单form的onsubmit事件。

6. 在input中调用校验函数,我使用的是onblur事件触发校验函数。

下拉框校验

下拉框的校验相比文本框略有不同,下拉框中option的返回值为value,由select中的name值获取到用户的选择,因此在下拉框的校验函数中通过id获取到select中的value,在根据value值是否为空或为其余的非法值而进行不同的判断,其余的步骤也与文本框相同。

表单校验样式如下:

使用JavaScript进行表单校验功能 
使用JavaScript进行表单校验功能 
使用JavaScript进行表单校验功能

遇到的问题

  • 校验表单时出现问题但表单仍然能够提交?
  • 原因:onsubmit事件作为一个提交动作有一个默认的参数,这个参数的默认值为true,前面提到如果满足条件要求就返回true否则返回false,每一项的校验中都要设置一个布尔类型的返回值,如果所有的校验全部通过才能正常提交表单,只要有一项不满足条件也不能提交表单而需要重新输入,因此需要对每一项校验函数的返回值做一个逻辑运算,全为真则最终返回给onsubmit的值为true,否则为false,而onsubmit的参数为false则无法提交,故实现了表单校验失败时阻止提交。
  • 一开始输入错误的内容,在修改变成正确的内容之后提示仍然为之前的提示?
  • 原因:在返回值为true时,将输出提示信息的文本内容置为空,即document.getElementById(“什么什么”).innerHTML=”“;
  • onchange和onblur事件都可以用来触发校验,并且两者都会在失去焦点之后实现校验,但onblur触发校验时有可能会由于用户间断输入而提示输入内容不符合要求。
  • 表单校验的js代码段不能等页面都加载完成之后加载。

代码块

以下为程序源码:

<script>
function validateUsername(){ 
var input = document.myform.userName.value; 
if(input == “”||input == null) { 
document.myform.userName.focus(); 
document.getElementById(“uname”).innerHTML=”用户名不能为空!”; 
return false; 
} 
else if(input.length>5 || input.length<2){ 
document.getElementById(“uname”).innerHTML= “用户名在2~5位”; 
document.myform.userName.focus(); 
return false; 
} 
else{ 
document.getElementById(“uname”).innerHTML=”“; 
return true; 
} 
} 
function validatePassword(){ 
var password = document.myform.password.value;
if(password == “”||password == null) { 
document.getElementById(“upss”).innerHTML = “密码不能为空!”; 
document.myform.password.focus(); 
return false;
} 
else if(password.length>12 || password.length<6){ 
document.getElementById(“upss”).innerHTML= “密码在6~12位”; 
document.myform.password.focus(); 
return false; 
} 
else{ 
document.getElementById(“upss”).innerHTML= “”; 
return true; 
} 
} 
function validatePasswordAgain(){ 
var psw = document.myform.psw.value; 
var password = document.myform.password.value; 
if(psw!=password){ 
document.getElementById(“upssa”).innerHTML=”两次密码输入不同”; 
return false; 
}else{ 
document.getElementById(“upssa”).innerHTML = “”; 
return true; 
} 
} 
function validateGroup(){ 
var select = document.getElementById(“select”); 
if(select.value == “NONE”){ 
document.getElementById(“groupID”).innerHTML=”请选择分组!”;
return false; 
}else { 
document.getElementById(“groupID”).innerHTML=”“;
return true; 
} 
} 
function validateForm(){ 
var flag = validateUsername()&&validatePassword()&&validatePasswordAgain()&&validateGroup(); 
if(flag){ 
return true; 
}else return false; 
}

```html

<div class="warp"> 
<h1>新用户注册</h1>
<form action="/myproject/admin/addUser" name="myform" onsubmit="return validateForm()">
<div class="form-warp">  
 <ul>
  <li>用户名称:<input class="input" type="text" name="userName" placeholder="请输入..." onblur="validateUsername()"/></li>
  <li>密 码:<input class="input" type="password" name="password" id="password" placeholder="请输入..." onblur="validatePassword()"/></li>
  <li>确认密码:<input class="input" type="password" name="psw" id="psw" placeholder="请输入..." onblur="validatePasswordAgain()"/></li>
  <li>真实姓名:<input class="input" type="text" name="realName" placeholder="请输入..."/></li>
  <li>分 组:<select name="group.id" id="select" onblur="validateGroup()">
     <option value="NONE">请选择...</option>
     <#list groups as group>
      <option value="${group.id}">${group.name}</option>
     </#list>
     </select>
  </li>
  <li><input type="submit" value="提交" id="button"/></li>
 </ul>
<ul class="validate">
 <li id="uname"></li>
 <li id="upss"></li>
 <li id="upssa"></li>
 <li id="groupID"></li>
</ul>
</div>
</form>
</div>
“`

总结

以上所述是小编给大家介绍的使用JavaScript进行表单校验功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQuery打造PHP的AJAX表单提交实例
Nov 03 Javascript
firefox firebug中文入门教程 脚本之家新年特别版
Jan 02 Javascript
可自己添加html的伪弹出框实现代码
Sep 08 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
Jul 29 Javascript
聊一聊JavaScript作用域和作用域链
May 03 Javascript
利用D3.js实现最简单的柱状图示例代码
Dec 09 Javascript
Vue路由跳转问题记录详解
Jun 15 Javascript
react 创建单例组件的方法
Apr 26 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
May 09 Javascript
详解vue2.0模拟后台json数据
May 16 Javascript
JS左右无缝轮播功能完整实例
May 16 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
Nov 13 Javascript
SpringMVC简单整合Angular2的示例
Jul 31 #Javascript
vue.js声明式渲染和条件与循环基础知识
Jul 31 #Javascript
在ABP框架中使用BootstrapTable组件的方法
Jul 31 #Javascript
knockoutjs模板实现树形结构列表
Jul 31 #Javascript
本地存储localStorage用法详解
Jul 31 #Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
Jul 31 #Javascript
ES6新特性:使用export和import实现模块化详解
Jul 31 #Javascript
You might like
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
php SQL Injection with MySQL
2011/02/27 PHP
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
python中import学习备忘笔记
2017/01/24 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
python如何实现递归转非递归
2021/02/25 Python
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
精彩广告词大全
2014/03/19 职场文书
2015年度党员个人总结
2015/02/14 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python
Pytest中skip skipif跳过用例详解
2021/06/30 Python
Python使用openpyxl模块处理Excel文件
2022/06/05 Python