使用原生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 的执行顺序
Aug 07 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
深入剖析JavaScript中的函数currying柯里化
Apr 29 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
Sep 01 Javascript
Angularjs中controller的三种写法分享
Sep 21 Javascript
NODE.JS跨域问题的完美解决方案
Oct 20 Javascript
jQuery中table数据的值拷贝和拆分
Mar 19 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
Jul 20 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
详解小程序之简单登录注册表单验证
May 13 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
Jan 16 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
德劲1104的电路分析与改良
2021/03/01 无线电
discuz Passport 通行证 整合笔记
2008/06/30 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
php除数取整示例
2014/04/24 PHP
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
Django数据库表反向生成实例解析
2018/02/06 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
商务英语专业毕业生自荐信
2013/11/05 职场文书
设计总监岗位职责
2013/12/07 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
英文求职信写作小建议
2014/02/16 职场文书
灰雀教学反思
2014/04/28 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫