使用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 相关文章推荐
JavaScript 版本自动生成文章摘要
Jul 23 Javascript
根据一段代码浅谈Javascript闭包
Dec 14 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
Jun 04 Javascript
如何在一个页面显示多个百度地图
Apr 07 Javascript
Script标签与访问HTML页面详解
Jan 10 Javascript
node.js中的favicon.ico请求问题处理
Dec 15 Javascript
Javascript中Promise的四种常用方法总结
Jul 14 Javascript
Bootstrap 模态框(Modal)带参数传值实例
Aug 20 Javascript
在vue中使用setInterval的方法示例
Apr 16 Javascript
javascript实现评分功能
Jun 24 Javascript
详解webpack的文件监听实现(热更新)
Sep 11 Javascript
js实现复制粘贴的两种方法
Dec 04 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-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python if not in 多条件判断代码
2016/09/21 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
迪奥官网:Dior.com
2018/12/04 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
打架检讨书100字
2014/01/08 职场文书
大学生英语演讲稿
2014/04/24 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
工程项目经理任命书
2014/06/05 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android