使用原生javascript创建通用表单验证——更锋利的使用dom对象


Posted in Javascript onSeptember 13, 2011

首先看下效果,没什么特别,呵呵!

使用原生javascript创建通用表单验证——更锋利的使用dom对象
调用的代码呢,则是相当简单,不需要创建其他的Label或者span标签,脚本将自动生成:

<input type="text" id="txt1" onkeyup="checkResult(this.value == '', 'txt1', ' *这里不能为空喔!')" />

接下来我们看下这个checkResult这个函数,checkCondition参数表示判断条件,当条件为true时显示提示信息;showAfterId参数为创建的显示提示信息的标签之前的元素ID,在这里我们在input后面创建一个span来显示提示信息,因而 传入的参数值为当前input的ID“txt1”;最后一个参数为显示的文字,这个就不用??铝恕
//验证不能为空展示提示信息 
function checkResult(checkCondition, showAfterId, showMsg) { 
var showLabelId = showAfterId + "showMsg"; 
if (checkCondition) { 
if (document.getElementById(showLabelId)) { 
document.getElementById(showLabelId).innerHTML = showMsg; 
} else { 
createShowElement(showAfterId, showLabelId, "color:red", showMsg, 'span'); 
} 
} else if (!checkCondition) { 
if (document.getElementById(showLabelId)) 
document.getElementById(showLabelId).innerHTML = ''; 
} 
}

好,最后我们来看这个“createShowElement(currentId, elementId, style, showMsg, tagName)”函数:currentId即当前标签的ID;elementId为创建的标签的ID;style为创建的标签的样式,按照样式的写法即可;showMsg不讲了;tagName为创建的标签名,如label或者span等。
//创建展示提示信息的dom 
function createShowElement(currentId, elementId, style, showMsg, tagName) { 
if (!tagName) tagName = 'label'; 
var currentDom = document.getElementById(currentId); 
var showMsgDom = document.createElement(tagName); 
//showMsgDom.setAttribute("style", "color:" + textColor + ";"); 
if (style) 
showMsgDom.setAttribute("style", style); 
showMsgDom.setAttribute("id", elementId); 
showMsgDom.innerHTML = showMsg; 
currentDom.parentNode.insertBefore(showMsgDom, currentDom.nextSibling); 
}

仅供交流,欢迎大家提出指点,渴望宝贵的意见。个人觉得,即使是写简单的脚本验证程序,也应该尽量遵循面向对象的思想,并且在可扩展与效率上追寻一个协调的点,既不影响效率,同时让我们写的任何程序具有更高的可扩展性,这点思路其实不难,但是经常被很多初级程序员忽略。
Javascript 相关文章推荐
多种方法判断Javascript对象是否存在
Sep 22 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
Oct 17 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
Aug 05 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
vue中遇到的坑之变化检测问题(数组相关)
Oct 13 Javascript
js设置随机切换背景图片的简单实例
Nov 12 Javascript
React Router V4使用指南(精讲)
Sep 17 Javascript
PostgreSQL Node.js实现函数计算方法示例
Feb 12 Javascript
浅谈微信小程序列表埋点曝光指南
Oct 15 Javascript
JS实现点餐自动选择框(案例分析)
Dec 10 Javascript
vue+iview实现文件上传
Nov 17 Vue.js
JS获取一个字符串中指定字符串第n次出现的位置
Feb 10 Javascript
ie下动态加态js文件的方法
Sep 13 #Javascript
使用Json比用string返回数据更友好,也更面向对象一些
Sep 13 #Javascript
TextArea不支持maxlength的解决办法(jquery)
Sep 13 #Javascript
JQuery与JSon实现的无刷新分页代码
Sep 13 #Javascript
js Event对象的5种坐标
Sep 12 #Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 #Javascript
腾讯UED 漂亮的提示信息效果代码
Sep 12 #Javascript
You might like
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
python中的字典操作及字典函数
2018/01/03 Python
Python异常处理操作实例详解
2018/05/10 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
Python 解析简单的XML数据
2020/07/24 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
大二自我鉴定
2014/01/31 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
学校安全管理责任书
2014/07/23 职场文书
干部个人对照检查材料
2014/08/25 职场文书
二年级语文下册复习计划
2015/01/19 职场文书
趣味运动会开幕词
2015/01/28 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
2015年司法局工作总结
2015/05/22 职场文书
办公室卫生管理制度
2015/08/04 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
python实现A*寻路算法
2021/06/13 Python