当需要验证的表单元素在页面加载完成后并没有确定时,jquery的验证框架就无能为力了。
于是模仿着自己做了个,备忘下。
$(document).ready(function(){
var form = $("#form");
form.find("input[type='text'],textarea").each(function(){
$(this).bind("keyup",validate);
});
});
var errorContainer = "#messageBox";//储存失败信息的容器
var WRAP_ERROR = "li";//错误信息的包装元素
var ERROR_REQ = "required";//必填项验证失败的错误信息
var ERROR_INT = "must positive";//必须为正数
/*
初始化
*/
function init(){
initContainer();
//初始化参数
if(WRAP_ERROR=='')
WRAP_ERROR = "li";
//other args
}
/*
初始化消息容器
*/
function initContainer(){
$(errorContainer).html('');
}
/*
验证主方法
元素的validate属性的取值有:
required:必填
int:正数
math[a-b]:数值在a-b的区间里,形如math[b]则a=0
len[a-b]:长度在a-b的区间里,形如len[b]则a=0
*/
function validate(){
init();
//验证所有的含有validate属性的元素
var f = "";
var form = $("#form");
form.find("input[type='text'],textarea").each(function(){
var _this = $(this);
var v = _this.attr("validate");
var val = _this.val();
//var name = _this.attr("name");
if("required"==v){
f+=vRequired(val);
}else if("int"==v){
f+=vInt(val);
}else if(startWith(v,"math")){
var a = 0;
var b = 0;
if(v.indexOf("-")!=-1){
a = parseInt(v.substring(v.indexOf("[")+1,v.indexOf("-")));
b = parseInt(v.substring(v.indexOf("-")+1,v.indexOf("]")));
}else{
b = parseInt(v.substring(v.indexOf("[")+1,v.indexOf("]")));
}
f+=vMath(val,a,b);
}else if(startWith(v,"len")){
var a = 0;
var b = 0;
if(v.indexOf("-")!=-1){
a = parseInt(v.substring(v.indexOf("[")+1,v.indexOf("-")));
b = parseInt(v.substring(v.indexOf("-")+1,v.indexOf("]")));
}else{
b = parseInt(v.substring(v.indexOf("[")+1,v.indexOf("]")));
}
f+=vLen(val,a,b);
}
});
if(f.length>0){
failHandler(f);
}else{
succHandler(f,form);
}
}
/*
验证成功
@args f:验证失败消息
@args form:验证的表单
*/
function succHandler(f,form){
//默认提交
//form.submit();
}
/*
验证失败
*/
function failHandler(f){
$("#messageBox").html(""+f);
}
/*
验证必填项
*/
function vRequired(v){
if($.trim(v).length<1){
return "<"+WRAP_ERROR+">"+ERROR_REQ+"</"+WRAP_ERROR+">";
}else{
return ""
}
}
/*
验证是否正数
*/
function vInt(v){
var r = vRequired(v);
if(r.length>0){
return r;
}
v = $.trim(v);
if(!/^[0-9]*[1-9][0-9]*$/.test(v)){
return "<"+WRAP_ERROR+">"+ERROR_INT+"</"+WRAP_ERROR+">";
}
}
/*
验证数值区间
*/
function vMath(v,min,max){
var r = vRequired(v);
if(r.length>0){
return r;
}else if(!isDigital(v)){
return "<"+WRAP_ERROR+">"+"must be digtal"+"</"+WRAP_ERROR+">";
}
v = parseInt($.trim(v));
if(v<min || v>max){
return "<"+WRAP_ERROR+">"+"value must be between"+min+" and "+max+"."+"</"+WRAP_ERROR+">";
}else{
return '';
}
}
/*
验证长度区间
*/
function vLen(v,min,max){
var r = vRequired(v);
if(r.length>0){
return r;
}
var len = v.length;
if(len<min || len>max){
return "<"+WRAP_ERROR+">"+"length must be between "+min+" and "+max+"."+"</"+WRAP_ERROR+">";
}else{
return '';
}
}
完整的例子见附件。
还有许多要修改和可以扩展的地方。
分享到:
相关推荐
本篇文章将深入探讨jQuery验证插件的核心功能、使用方法以及常见的应用场景。 ### 1. jQuery验证插件简介 jQuery Validation Plugin是由Jörn Zaefferer开发的,它是一个轻量级且功能强大的验证库,可以轻松地与...
本篇将深入探讨如何利用JQuery实现表单验证,特别是在注册验证场景中的应用。 首先,了解JQuery的核心概念是必要的。JQuery是一个轻量级、高性能的JavaScript库,它通过简洁的API简化了DOM操作、事件处理、动画以及...
jQuery验证框架学习教程详细介绍了jQuery及其验证插件的使用方法,旨在帮助开发者快速掌握jQuery这一强大的JavaScript库,并学会如何使用其提供的验证功能来增强Web应用的用户交互体验。 首先,jQuery是一个开源的...
本篇文章将深入探讨jQuery验证框架的使用方法、核心功能以及常见应用场景。 ### 一、jQuery验证框架基础 1. **安装与引入**:首先,你需要在项目中引入jQuery库和验证框架的JS文件。通常,这两个文件可以从CDN...
**jQuery验证代码详解** 在网页开发中,用户输入的数据验证是一项关键任务,它能确保用户提交的信息符合预期的格式和规则。jQuery,一个强大的JavaScript库,提供了简单易用的API来处理这种验证。本篇文章将深入...
jQuery是一个广泛使用的JavaScript库,而jQuery.validate则是jQuery的一个强大插件,专门用于实现客户端的表单验证。本篇文章将详细介绍jQuery.validate框架及其核心功能。 一、jQuery.validate简介 jQuery....
本篇文章将深入探讨如何利用jQuery实现数据验证,这对于确保用户输入的数据符合预设规则至关重要,特别是在Web表单应用中。 首先,理解数据验证的基本概念。数据验证是检查用户在网页表单中输入的信息是否有效和...
`jQuery`作为一款广泛使用的JavaScript库,提供了便捷的方式来增强用户体验并实现复杂的前端功能,其中包括密码强度验证。本篇文章将深入探讨如何使用jQuery实现密码强度验证,并针对描述中的6、7、8位密码长度进行...
本篇文章将深入探讨jQuery表单验证插件的使用、功能以及常见的应用场景。 ### 一、jQuery与表单验证 jQuery的核心优势在于其简洁的语法和强大的功能,这使得使用jQuery进行表单验证变得非常直观。通过选择器选取...
本篇文章将深入探讨基于jQuery的表单验证技术。 ### 1. jQuery简介 jQuery是由John Resig于2006年创建的一个轻量级的JavaScript库,它的核心特性是简化DOM操作、事件处理、动画效果和Ajax交互。jQuery的语法简洁,...
结合给出的标签"源码"和"工具",我们可以推断这篇博文可能涉及了jQuery验证的源代码分析或者使用某种工具进行验证的实践。可能的内容包括如何阅读和理解验证插件的源码,学习内部的工作机制,或者是介绍了一款与...
本篇文章将深入探讨如何使用jQuery实现阿里云风格的登录滑块拖动验证,帮助开发者构建更安全的登录系统。 一、滑块拖动验证原理 滑块拖动验证的基本原理是通过用户的交互行为(拖动滑块完成拼图)来判断是否为真实...
一、jQuery验证基础 jQuery提供了多种方法进行表单验证,如`$.validator.addMethod()`,它允许开发者自定义验证规则。例如,我们可以创建一个验证邮箱地址的函数: ```javascript $.validator.addMethod("email", ...
本篇将深入探讨如何利用jQuery实现表单验证,并以"JQuery表单验证Demo"为例进行详细讲解。 首先,我们需要理解jQuery的核心概念。jQuery通过简洁的API简化了DOM操作、事件处理、动画效果以及Ajax交互。在表单验证...
本篇文章将详细探讨如何利用PHP和jQuery实现一个简单的登录验证系统。 首先,PHP(Hypertext Preprocessor)是一种服务器端脚本语言,用于开发动态网站和应用程序。在登录验证场景中,PHP主要负责处理用户提交的...
本篇文章将深入探讨jQuery验证相关的知识点,以及如何利用jQuery和JavaScript进行有效的表单验证。 首先,jQuery提供了方便的事件处理机制,如`$(document).ready()`,允许我们在页面加载完成后执行代码,确保元素...
本篇文章将深入探讨“jQuery验证”,包括如何使用jQuery插件进行表单验证,以及如何借助帮助手册和示例来实现这一目标。 首先,让我们理解jQuery验证的基本概念。jQuery的验证插件允许开发者轻松地为HTML表单添加...
以下是使用jQuery实现Ajax登录验证的一个简要示例: ```html <!DOCTYPE html> 登录验证 <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> $(document).ready(function() { $("#...
本篇文章将深入探讨jQuery表单验证集合,包括其核心概念、实现方式以及常见的验证类型。 **一、jQuery表单验证基础** 1. **事件监听**:jQuery通过事件监听机制,如`submit`、`focusout`或`change`,可以在用户...