使用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 问答知识整理
Feb 11 Javascript
自定义jQuery选项卡插件实例
Mar 27 Javascript
JQuery的AJAX实现文件下载的小例子
May 15 Javascript
js判断背景图片是否加载成功使用img的width实现
May 29 Javascript
jquery实现div阴影效果示例代码
Sep 16 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
Sep 11 Javascript
AngularJS实现表单验证功能详解
Oct 12 Javascript
vue动态改变背景图片demo分享
Sep 13 Javascript
Vue触发隐藏input file的方法实例详解
Aug 14 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
May 18 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常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
Python实现两个list对应元素相减操作示例
2017/06/09 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
python reverse反转部分数组的实例
2018/12/13 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
keras 读取多标签图像数据方式
2020/06/12 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
Europcar比利时:租车
2019/08/26 全球购物
2013年保送生自荐信格式
2013/11/20 职场文书
军训自我鉴定
2013/12/14 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
2015年三万活动总结
2015/03/25 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python