使用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-onload让第一次页面加载时图片是淡入方式显示
May 23 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
Feb 11 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
Dec 02 Javascript
js格式化时间的方法
Dec 18 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
jQuery+CSS实现简单切换菜单示例
Jul 27 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
Jan 23 Javascript
JS获取当前地理位置的方法
Oct 25 Javascript
vue组件的写法汇总
Apr 12 Javascript
koa-router源码学习小结
Sep 07 Javascript
vue观察模式浅析
Sep 25 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
缅甸的咖啡简史
2021/03/04 咖啡文化
PHP邮件群发机实现代码
2016/02/16 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
Python中内置的日志模块logging用法详解
2016/07/12 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
对Python w和w+权限的区别详解
2019/01/23 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
大学生创业计划书的用途
2014/01/08 职场文书
学员自我鉴定
2014/03/19 职场文书
四风问题对照检查材料
2014/09/22 职场文书
学习经验交流会总结
2015/11/02 职场文书