使用原生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 相关文章推荐
疯掉了,尽然有js写的操作系统
Apr 23 Javascript
Packer 3.0 JS压缩及混淆工具 下载
May 03 Javascript
dojo学习第二天 ajax异步请求之绑定列表
Aug 29 Javascript
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 Javascript
Google Dart编程语法和基本类型学习教程
Nov 27 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
Jun 23 Javascript
BootStrap无限级分类(无限极分类封装版)
Aug 26 Javascript
BootStrap入门教程(二)之固定的内置样式
Sep 19 Javascript
详解VUE中v-bind的基本用法
Jul 13 Javascript
Bootstrap 树控件使用经验分享(图文解说)
Nov 06 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
Jan 08 Javascript
Vue 构造选项 - 进阶使用说明
Aug 14 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
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
JavaScript 10件让人费解的事情
2010/02/15 Javascript
最短的IE判断代码
2011/03/13 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
理解javascript对象继承
2016/04/17 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
Python使用chardet判断字符编码
2015/05/09 Python
python binascii 进制转换实例
2019/06/12 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
python初步实现word2vec操作
2020/06/09 Python
详解Python 循环嵌套
2020/07/09 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
检举信的格式及范文
2014/04/04 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
介绍信格式
2015/01/30 职场文书
党员年终个人总结
2015/02/14 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
详细聊聊vue中组件的props属性
2021/11/02 Vue.js