`
gigi_ly180
  • 浏览: 1990 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

最近在公司的项目中,对目前用到的form表单校验整合的验证(框架?)

阅读更多
最近,自己写了一个基于jquery的类似js验证框架,目前不支持radio和checkbox的校验(需要通过name来界定,而我这里都是根据节点的id),请朋友指正
不懂详细如何描述,直接上内容吧:
先说下html代码
          <tr>
            <td align="right" class="f_14px">电话号码</td>
            <td><input name="user.mobileTelephone" id="telephone" type="text" class="gm_input_e"/><em class="btx_dian">*</em></td>
            <td><em id="telephone_error" class="f_c_12px">输入11位数字号码</em></td>
          </tr>
其中的em标签中的id必需为input中的id+"_error",否则需要修改框架中的规则。
同时,给form表单加上id,加入初始化事件和参数配置
<script type="text/javascript" >
var idArray = ["loginPwd", "password","confirmPwd"];
var regArray = [/^([A-Za-z]|[_]|[0-9]){6,12}$/,/^([A-Za-z]|[_]|[0-9]){6,12}$/,/^([A-Za-z]|[_]|[0-9]){6,12}$/];
var errorArray = ["不可为空且不超过6-12位字符", "不可为空且不超过6-12位字符", "不可为空且不超过6-12位字符"];
var baseinfoArray = ["输入6-12位字母或数字,区分大小写","输入6-12位字母或数字,区分大小写","输入6-12位字母或数字,区分大小写"];

$(document).ready(function() {
for (var i = 0; i < idArray.length; i++) {
$("#" + idArray[i]).blur(function() {
checkEle($(this).attr("id"), "c_red");
})
}
$("#regForm").submit(function() {
return checkForm($(this).attr("id"), "c_red");
})
});
</script>
配置至此完毕,上面的这些数组的定义,我在我的js文件中有详细的描述,大家帮忙指正。

不知道怎么发了附件看不到,我直接把代码贴上来吧

// // 对于框架的引用,需要用到下面的这些参数
// // 以下为必填
// /**
// * 所有要进行验证的元素的id
// */
// var idArray = ["loginPwd", "password", "confirmPwd"];
// /**
// * 对应的正则
// */
// var regArray = [/^([A-Za-z]|[_]|[0-9]){6,12}$/,
// /^([A-Za-z]|[_]|[0-9]){6,12}$/,
// /^([A-Za-z]|[_]|[0-9]){6,12}$/];
// /**
// * 错误信息
// */
// var errorArray = ["不可为空且不超过6-12位字符", "不可为空且不超过6-12位字符", "不可为空且不超过6-12位字符"];
// /**
// * 原始信息
// */
// var baseinfoArray = ["输入6-12位字母或数字,区分大小写", "输入6-12位字母或数字,区分大小写",
// "输入6-12位字母或数字,区分大小写"];
// // 以下为选配
// /**
// * 重复校验的元素集合,必须两个一组,即第1,2个为一组,否则会出现未知错误(可不配置)
// */
// var reCheckArray = ["password", "confirmPwd"];
// /**
// * 重复校验的错误信息(可不配置,必须与reCheckArray数组同时配置或不配置)
// */
// var reCheckInfoArray = ["两次输入的密码不一致"];
// /**
// * 校验中英文混合长度的数组,对应在正则的数组中必须可校验“*”,原理是将中文替换成2个“*”进行校验(可不配置)
// */
// var chineseOrOtherArray = ["title"];
// /**
// * form表单是否提交的参数
// */
// var submitFlag = "";
// /**
// * onload初始化事件(根据需要选配)
// */
// $(document).ready(function() {
// /**
// * 对form表单中的元素初始化onblur事件
// */
// for (var i = 0; i < idArray.length; i++) {
// $("#" + idArray[i]).blur(function() {
// checkEle($(this).attr("id"), "c_red");
// })
// }
// /**
// * 对form表中的提交初始化校验
// */
// $("#modifyPwdForm").submit(function() {
// return (checkForm($(this).attr("id"), "c_red"));
// })
// });
/**
* 默认的样式名
*/
var defaultClassName = "f_c_12px";
/**
* 检查每个字段
*
* @param {}
*            id 元素节点的id
* @param {}
*            className 错误的样式名
* @return {true为符合规则,false为不符合规则}
*/
function checkEle(id, className) {
var num = getNum(idArray, id);
var submitFlag = true;
if (num > -1) {
var value = $("#" + id).val();
var reg = regArray[num];
// 判断特殊的中英文长度校验的数组
try {
chineseOrOtherArray == null;
} catch (e) {
chineseOrOtherArray = [];
}
// 判断需要重复校验的元素数组,如密码重复校验,必须为2个一组的
try {
reCheckArray == null;
} catch (e) {
reCheckArray = [];
}
var chineseNum = getNum(chineseOrOtherArray, id);
// 中文的替换成2个字符
if (chineseNum > -1) {
value = value.replace(/[^\x00-\xff]/g, '**');
}
var flag = reg.test(value);
var errorinfo = "";
if (flag) {
var reCheckNum = getNum(reCheckArray, id);
// 如果为数组中的偶数项
if (reCheckNum > 0 && ((reCheckNum - 1) % 2) == 0) {
var lastValue = $("#" + idArray[num - 1]).val();
// 中文的替换成2个字符
value = $("#" + idArray[num]).val();
if (value != lastValue) {
$("#" + id + "_error")
.html(reCheckInfoArray[(reCheckNum - 1) / 2])
.removeClass().addClass(className);
submitFlag = false;
return submitFlag;
}
}
$("#" + id + "_error").html(baseinfoArray[num]).removeClass()
.addClass(defaultClassName);
} else {
$("#" + id + "_error").html(errorArray[num]).removeClass()
.addClass(className);
submitFlag = false;
}
}
return submitFlag;
}
/**
* 检查指定id的表单
*
* @param {}
*            id form表单的id
* @param {}
*            className 错误的样式名
* @return {true为符合规则,false为不符合规则}
*/
function checkForm(id, className) {
submitFlag = true;
$("#" + id).find("input, select, textarea").each(function() {
var eleId = $(this).attr("id");
if (!checkEle(eleId, className) && submitFlag) {
submitFlag = checkEle(eleId, className);
}
})
return submitFlag;
}

/**
* 判断数组中是否有该元素
*
* @param {}
*            array 数组
* @param {}
*            id 元素的id
* @return {true为存在,false为不存在}
*/
function getNum(array, id) {
var flag = -1;
for (var i = 0; i < array.length; i++) {
if (array[i] == id) {
flag = i;
break;
}
}
return flag;
}
0
0
分享到:
评论
1 楼 wrong1111 2009-08-12  
虽说验证表单早已有现成的了。。但是为了LZ写的代码。。。赞一个!

表单验证也可以看看这个。。

http://wrong1111.iteye.com/blog/437150

相关推荐

    from 表单验证 js框架类库

    目前支持5种大的校验方式,分别是:inputValidator(针对input、textarea、select控件的字符长度、值范围、选择个数的控制)、compareValidator(提供2个对象的比较,目前可以比较字符串和数值型)、ajaxValidator...

    JavaScript的form表单验证中的身份证校验.pdf

    在进行Web应用程序开发时,表单验证是一项非常重要的功能,它可以确保用户输入的数据格式正确并符合预期的要求。其中,身份证号码验证尤其重要,因为它涉及到个人信息的真实性和合法性。本文将详细介绍如何使用...

    使layui.js form 可主动验证表单是否通过

    使layui.js form 可主动验证表单是否通过。扩展layui下的form.js 。文章链接 https://blog.csdn.net/qq_17837497/article/details/107505486

    使用FormValidation进行表单验证

    在网页开发中,表单验证是一项至关重要的任务,它确保用户输入的数据符合预期格式和规则,从而保护数据安全,提供良好的用户体验。`FormValidation`是一个强大的JavaScript库,它结合了`jQuery`和`Bootstrap`框架,...

    jQuery的form表单校验插件

    在Web开发中,表单验证是必不可少的一环,它确保用户输入的数据符合预设的规则,避免无效数据的提交,提高用户体验。jQuery作为一个强大的JavaScript库,提供了丰富的功能,包括对DOM操作的简化,使得处理表单验证...

    原生JS经典小项目-form表单校验

    在网页开发中,表单(Form)是用户与服务器交互的重要工具,用于收集用户输入的数据。原生JavaScript的表单校验则是为了确保用户输入的数据符合预期格式和规则,提高用户体验,防止无效或恶意数据的提交。这个经典小...

    vue element el-form多表单验证.txt

    而在使用 Vue.js 搭配 Element UI 进行开发时,我们经常会遇到需要对多个表单进行同时验证的需求。本文将详细介绍如何通过 Promise 的方法实现 Vue Element UI 中的多表单验证。 #### 一、Vue Element UI 表单验证...

    详细讲解—表单验证框架的实现

    在Web开发中,表单验证框架的实现是至关重要的,它确保了用户输入的数据符合预设的规则,防止无效或恶意的数据进入系统。本部分将深入讲解如何在B/S架构的应用程序中实施一个简单的表单验证框架,以登录表单为例。 ...

    form验证与动态验证框架

    在IT行业中,表单验证和动态验证框架是构建高效、健壮且用户友好的Web应用程序不可或缺的部分。本文将深入探讨这两个关键概念,并结合标签“源码”和“工具”,介绍如何利用现有技术进行有效的表单数据验证。 首先...

    Form验证框架 JS

    1. **实时验证**: 表单验证框架能够实时检查用户输入,当用户在输入框中输入内容时立即进行验证,及时反馈错误信息,避免用户提交无效表单。 2. **多样化验证规则**: 框架通常提供多种预设的验证规则,如非空、邮箱...

    Form验证表单Form验证表单

    在网页开发中,表单(Form)验证是一个关键环节,用于确保用户输入的数据符合预设的规则和标准,从而防止无效数据的提交,提高用户体验,同时也保护了服务器资源免受恶意攻击。`Form验证表单`是这个过程的核心,本文...

    Vue ~ element-ui 动态表单验证,支持添加和删除操作

    在Vue.js框架中,Element-UI是一个非常流行的UI组件库,它提供了丰富的界面元素和功能,使得开发者可以快速构建美观的后台管理系统。本项目“Vue ~ element-ui 动态表单验证”是针对Vue和Element-UI的一个应用场景,...

    Vue+Element实现动态生成新表单并添加验证功能

    在Vue.js框架中与Element UI组件库结合实现动态表单生成以及表单验证是一个相当实用的技术应用场景。本文主要阐述了如何使用Vue.js和Element UI来实现表单的动态生成,并为这些动态生成的表单添加了验证功能。 知识...

    jquery表单验证实例,对数字,字数,必填项等校验

    在"jquery表单验证实例,对数字,字数,必填项等校验"这个项目中,我们关注的核心知识点包括: 1. **jQuery Validate插件安装与引入**:首先,你需要在HTML文件中引入`jQuery`库和`jQuery Validate`插件的JS文件。...

    Python关于 Django 的web- Form 表单验证

    在Python的Web开发框架Django中,Form表单验证是一个至关重要的部分,它允许开发者创建用户界面并确保从用户那里接收到的数据是有效且安全的。Form类是Django提供的一个强大工具,用于处理HTTP请求中的数据,进行...

    ajax验证并提交表单的两种方法博客源码

    本资源通过ajax实现对提交的form表单的验证,该代码不但有针对property验证,也有针对object验证,还有一个异步获取对象的实例;包含完整的代码和库文件;在myeclipse8.5和apache-tomcat-6.0.30测试通过;访问网址:...

    JS验证页面form表单数据,齐全

    在form表单上添加一个提交事件调用验证数据方法 &lt;form name="listform" action="resume-doAdd" method="post" onsubmit="return Validator.Validate(this,3);"&gt; 请输入正确的手机号!" requiremsg="移动电话不能为...

    JSValidation-----强大而灵活的表单客户端验证框架

    它将常见的校验(目前支持13种)封装起来,并创造性的采用xml来存贮表单验证信息,使得表单的验证成为整个项目中最不重要的环节,开发者只需要定义几个xml标记,就可以创建出复杂的验证策略,而不用编写一行...

    form表单的验证

    Form表单的验证

    JSP客户端表单验证框架JSValidation

    JSValidation是一款基于JavaScript的轻量级表单验证框架,主要用于在JSP(JavaServer Pages)应用中实现客户端的表单数据验证。它提供了一种简单、高效的手段来确保用户在提交表单之前输入的数据符合预设的规则,...

Global site tag (gtag.js) - Google Analytics