jQuery Validate密码验证的基本使用

2024-08-29 05:18

本文主要是介绍jQuery Validate密码验证的基本使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API。所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言。

1. 下载和引入validate.js
注意Validate的导入要在jQuery库之后。代码如下:
先导入jQuery库,然后导入Validate插件,如果是中文提示还需要导入messages_zh.js。

<script src="jQuery.1.8.3.js" type="text/javascript"></script> 
<script src="jquery.validate.js" type="text/javascript"></script><script src="messages_zh.js" type="text/javascript"></script>

在这里插入图片描述
html

<form class="login-form" id="loginForm" οnsubmit="return false"><div class="form-group"><label for="username">用户名</label><input type="text" class="form-control" id="user" name="username" placeholder="请输入用户名"></div><div class="form-group"><label for="password">密码</label><input type="password" class="form-control" id="pwd" name="password" placeholder="请输入密码"></div><div class="form-group" style="margin-bottom: 10px;"><label for="verify">验证码</label><div class="input-group"><input type="text" class="form-control" id="verify" name="verify" placeholder="请输入验证码"></div></div><button id="login" type="submit" class="btn btn-primary">登录</button>
</form>

js

 $(document).ready(function () {var icon = "<i class='fa fa-times-circle'></i> ";// 项目一开始就要初始化验证$("#loginForm").validate({errorElement: 'span',errorClass: 'error-block',onfocusout: function(element) { $(element).valid(); },rules: {username: {required: true},password: {required: true,passWord:true    // 和自定义验证相同},verify: {required: true}},messages: {username: {required: icon + "请输入您的用户名",},password: {required: icon + "请输入您的密码",passWord:icon + "请输入至少10位密码(至少包含1个字母,1个数字和1个特殊字符)",},verify: {required: icon + "请输入您的密码",}},submitHandler:function () {login()   //验证成功的提交事件}})// 自定义密码验证jQuery.validator.addMethod("passWord", function(value, element) {var passWord = /^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*((?=[\x21-\x7e]+)[^A-Za-z0-9])).{10,}$/;return this.optional(element) || (passWord.test(value));}, "请输入至少10位密码(至少包含1个字母,1个数字和1个特殊字符)");
})

提示 form表格验证会提交,form要添加 οnsubmit=“return false” ,登录提交按钮改为 type="submit "

jQuery Validate密码验证 API

  1. 内置验证方式:
规则描述
required:true必输字段
email:true必须输入正确格式的电子邮件
url:true必须输入正确格式的网址
date:true必须输入正确格式的日期,日期校验ie6出错,慎用
dateISO:true必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
number:true必须输入合法的数字(负数,小数)
digits:true必须输入整数
creditcard:true必须输入合法的信用卡号
equalTo:"#password"输入值必须和#password相同
accept:输入拥有合法后缀名的字符串(上传文件的后缀)
maxlength:5输入长度最多是5的字符串(汉字算一个字符)
minlength:10输入长度最小是10的字符串(汉字算一个字符)
rangelength:[5,10]输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
range:[5,10]输入值必须介于 5 和 10 之间
max:5输入值不能大于5
min:10输入值不能小于10
  1. validate ()的可选项:
规则描述
debug:true只验证不提交表单
errorClass:String Default: “error”指定错误提示的css类名,可以自定义错误提示的样式
errorElement:String Default: “label”用什么标签标记错误,默认的是label你可以改成em
errorContainer:Selector显示或者隐藏验证信息,可以自动实现有错误信息出现时把容器属性变为显示,无错误时隐藏,用处不大
errorLabelContainer:Selector把错误信息统一放在一个容器里面。
wrapper:String用什么标签再把上边的errorELement包起来一般这三个属性同时使用,实现在一个容器内显示所有错误提示的功能,并且没有信息时自动隐藏 errorContainer: “div.error”, errorLabelContainer: $("#signupForm div.error"),
wrapper: “li”
remote:“remote-valid.jsp”使用ajax方法调用remote-valid.jsp验证输入值
debug:进行调试模式(表单不提交):$(".selector").validate({ debug:true})
把调试设置为默认:$.validator.setDefaults({debug:true})
submitHandler:通过验证后运行的函数,里面要加上表单提交的函数,否则表单不会提交$(".selector").validate({ submitHandler:function(form) {$(form).ajaxSubmit();}})
ignore:对某些元素不进行验证 $("#myform").validate({ignore:".ignore"})
rules:自定义规则,key:value的形式,key是要验证的元素,value可以是字符串或对象$(".selector").validate({rules:{ }})
messages:自定义的提示信息key:value的形式key是要验证的元素,值是字符串或函数$(".selector").validate({ messages:{ name:"Name不能为空" }})
groups:对一组元素的验证,用一个错误提示,用error Placement控制把出错信息放在哪里$("#myform").validate({ groups:{ username:"fname lname"}})
Onubmit Boolean默认:true是否提交时验证$(".selector").validate({ onsubmit:false})
onfocusout Boolean 默认:true是否在获取焦点时验证
onkeyup Boolean 默认:true是否在敲击键盘时验证
onclick Boolean 默认:true是否在鼠标点击时验证(一般验证checkbox,radiobox)
focusInvalid Boolean 默认:true提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点
focusCleanup Boolean 默认:false当未通过验证的元素获得焦点时,并移除错误提示(避免和 focusInvalid.一起使用)
errorClass String 默认:“error”指定错误提示的css类名,可以自定义错误提示的样式$(".selector").validate({ errorClass:"invalid"})
errorElement String 默认:“label”使用什么标签标记错误$(".selector").validate{(errorElement:"em"})
wrapper String使用什么标签再把上边的errorELement包起来$(".selector").validate({ wrapper:"li"})
errorLabelContainer Selector把错误信息统一放在一个容器里面$("#myform").validate({ errorLabelContainer:"#messageBox"})
 **showErrors:**
$(".selector").validate({showErrors:function(errorMap,errorList) {$("#summary").html("Your form contains " + this.numberOfInvalids() + " errors,see details below.");this.defaultShowErrors();}
})
**errorPlacement:**
跟一个函数,可以自定义错误放到哪里
$("#myform").validate({rrorPlacement:function(error,element) { error.appendTo(element.parent("td").next("td"));},debug:true
})**success:**
要验证的元素通过验证后的动作,如果跟一个字符串,会当做一个css类,也可跟一个函数
$("#myform").validate({success:"valid",submitHandler:function() { alert("Submitted!") }
})**highlight:**
可以给未通过验证的元素加效果,闪烁等

3 默认的提示

messages: {required: "This field is required.",remote: "Please fix this field.",email: "Please enter a valid email address.",url: "Please enter a valid URL.",date: "Please enter a valid date.",dateISO: "Please enter a valid date (ISO).",dateDE: "Bitte geben Sie ein g眉ltiges Datum ein.",number: "Please enter a valid number.",numberDE: "Bitte geben Sie eine Nummer ein.",digits: "Please enter only digits",creditcard: "Please enter a valid credit card number.",equalTo: "Please enter the same value again.",accept: "Please enter a value with a valid extension.",maxlength: $.validator.format("Please enter no more than {0} characters."),minlength: $.validator.format("Please enter at least {0} characters."),rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),range: $.validator.format("Please enter a value between {0} and {1}."),max: $.validator.format("Please enter a value less than or equal to {0}."),min: $.validator.format("Please enter a value greater than or equal to {0}.")
},

Query Validate提供了中文信息提示包,位于下载包的 dist/localization/messages_zh.js,只需将包引入到页面即可。
当然也可以自己设置messages来设置提示(例如开头的例子)。

4、更改错误信息显示的样式

设置错误提示的样式,可以增加图标显示,在该系统中已经建立了一个validation.css专门用于维护校验文件的样式
也可以通过设置errorClass,errorElement给提示设置不同的报错信息

复制代码
input.error { border: 1px solid red; }
label.error {
background:url("./demo/images/unchecked.gif") no-repeat 0px 0px;
padding-left: 16px;
padding-bottom: 2px;
font-weight: bold;
color: #EA5200;
}
label.checked {
background:url("./demo/images/checked.gif") no-repeat 0px 0px;
}

  1. 每个字段验证通过执行函数
    success:String,Callback

要验证的元素通过验证后的动作,如果跟一个字符串,会当做一个css类,也可跟一个函数

success: function(label) {// set &nbsp; as text for IElabel.html("&nbsp;").addClass("checked");//label.addClass("valid").text("Ok!")
}

添加"valid"到验证元素, 在CSS中定义的样式
success: “valid”

6、验证的触发方式修改

onsubmit:Boolean Default: true
提交时验证. 设置唯false就用其他方法去验证
onfocusout:Boolean Default: true
失去焦点是验证(不包括checkboxes/radio buttons)
onkeyup:Boolean Default: true
在keyup时验证.
onclick:Boolean Default: true
在checkboxes 和 radio 点击时验证
focusInvalid:Boolean Default: true
提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点
focusCleanup:Boolean Default: false
如果是true那么当未通过验证的元素获得焦点时,移除错误提示。避免和focusInvalid一起用

7、异步验证

remote:URL
使用ajax方式进行验证,默认会提交当前验证的值到远程地址,如果需要提交其他的值,可以使用data选项

复制代码
示例一:

remote: "check-email.jsp"

示例二:

remote: {url: "check-email.jsp",     //后台处理程序type: "post",               //数据发送方式dataType: "json",           //接受数据格式   data: {                     //要传递的数据username: function() {return $("#username").val();}}
}

远程地址只能输出"true"或"false",不能有其它输出。

8、添加自定义校验

addMethod:name, method, message
自定义验证方法

// 中文字两个字节
jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {var length = value.length;for(var i = 0; i < value.length; i++){if(value.charCodeAt(i) > 127){length++;}}return this.optional(element) || (length >= param[0] && length <= param[1]);   }, $.validator.format("请确保输入的值在{0}-{1}个字节之间(一个中文字算2个字节)")
);// 邮政编码验证   
jQuery.validator.addMethod("isZipCode", function(value, element) {   var tel = /^[0-9]{6}$/;return this.optional(element) || (tel.test(value));
}, "请正确填写您的邮政编码");
// 手机号码验证
jQuery.validator.addMethod("mobile", function(value, element) {var length = value.length;var mobile =  /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/return this.optional(element) || (length == 11 && mobile.test(value));
}, "手机号码格式错误");  // 电话号码验证   
jQuery.validator.addMethod("phone", function(value, element) {var tel = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/;return this.optional(element) || (tel.test(value));
}, "电话号码格式错误");// 邮政编码验证   
jQuery.validator.addMethod("zipCode", function(value, element) {var tel = /^[0-9]{6}$/;return this.optional(element) || (tel.test(value));
}, "邮政编码格式错误");// QQ号码验证   
jQuery.validator.addMethod("qq", function(value, element) {var tel = /^[1-9]\d{4,9}$/;return this.optional(element) || (tel.test(value));
}, "qq号码格式错误");// IP地址验证
jQuery.validator.addMethod("ip", function(value, element) {var ip = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/;     return this.optional(element) || (ip.test(value) && (RegExp./;     return this.optional(element) || (ip.test(value) && (RegExp.1 < 256 && RegExp.2 < 256 && RegExp.2 < 256 && RegExp.3 < 256 && RegExp.$4 < 256));
}, "Ip地址格式错误");// 字母和数字的验证
jQuery.validator.addMethod("chrnum", function(value, element) {var chrnum = /^([a-zA-Z0-9]+)$/;return this.optional(element) || (chrnum.test(value));
}, "只能输入数字和字母(字符A-Z, a-z, 0-9)");// 中文的验证
jQuery.validator.addMethod("chinese", function(value, element) {var chinese = /^[\u4e00-\u9fa5]+$/;return this.optional(element) || (chinese.test(value));
}, "只能输入中文");// 下拉框验证
$.validator.addMethod("selectNone", function(value, element) {return value == "请选择";
}, "必须选择一项");// 字节长度验证
jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {var length = value.length;for (var i = 0; i < value.length; i++) {if (value.charCodeAt(i) > 127) {length++;}}return this.optional(element) || (length >= param[0] && length <= param[1]);
}, $.validator.format("请确保输入的值在{0}-{1}个字节之间(一个中文字算2个字节)"));

1.要在additional-methods.js文件中添加或者在jquery.validate.js添加建议一般写在additional-methods.js文件中

2.在messages_cn.js文件添加:isZipCode: “只能包括中文字、英文字母、数字和下划线”,调用前要添加对additional-methods.js文件的引用。

9、radio和checkbox、select的验证

复制代码
1.radio的required表示必须选中一个

<input  type="radio" id="gender_male" value="m" name="gender" class="{required:true}" />
<input  type="radio" id="gender_female" value="f" name="gender"/>

2.checkbox的required表示必须选中

<input type="checkbox" class="checkbox" id="agree" name="agree" class="{required:true}" />
checkbox的minlength表示必须选中的最小个数,maxlength表示最大的选中个数,rangelength:[2,3]表示选中个数区间
<input type="checkbox" id="spam_email" value="email" name="spam[]" class="{required:true, minlength:2}" />
<input type="checkbox" id="spam_phone" value="phone" name="spam[]" />
<input type="checkbox" id="spam_mail" value="mail" name="spam[]" />

3.select的required表示选中的value不能为空

<select id="jungle" name="jungle" title="Please select something!" class="{required:true}"><option value=""></option><option value="1">Buga</option><option value="2">Baga</option><option value="3">Oi</option>
</select>

select的minlength表示选中的最小个数(可多选的select),maxlength表示最大的选中个 数,rangelength:[2,3]表示选中个数区间

<select id="fruit" name="fruit" title="Please select at least two fruits" class="{required:true, minlength:2}" multiple="multiple"><option value="b">Banana</option><option value="a">Apple</option><option value="p">Peach</option><option value="t">Turtle</option>
</select>

10.可以设置validate的默认值
如果有两个或者多个表格验证,可以设置默认值
$.validator.setDefaults({
errorElement: ‘span’,
errorClass: ‘error-block’,
submitHandler: function(form) { alert(“submit!”); form.submit(); }
});

jQuery.validate 中文 API

名称返回类型描述
validate(options)返回:Validator验证所选的FORM
valid()返回:Boolean检查是否验证通过
rules()返回:Options返回元素的验证规则
rules(“add”,rules)返回:Options增加验证规则
rules(“remove”,rules)返回:Options删除验证规则
removeAttrs(attributes)返回:Options删除特殊属性并且返回他们
Custom selectors
:blank返回:Validator没有值的筛选器
:filled返回:Array 有值的筛选器
:unchecked返回:Array 没选择的元素的筛选器
Utilities
jQuery.format(template,argument ,argumentN…)返回:String

validate方法返回一个Validator对象,它有很多方法, 让你能使用引发校验程序或者改变form的内容. validator对象有很多方法,但下面只是列出常用的

名称返回类型描述
form()返回:Boolean验证form返回成功还是失败
element(element)返回:Boolean验证单个元素是成功还是失败
resetForm()返回:undefined把前面验证的FORM恢复到验证前原来的状态
showErrors(errors)返回:undefined显示特定的错误信息
Validator functions:
setDefaults(defaults)返回:undefined改变默认的设置
addMethod(name,method,message)返回:undefined添加一个新的验证方法. 必须包括一个独一无二的名字,一个JAVASCRIPT的方法和一个默认的信息
addClassRules(name,rules)返回:undefined增加组合验证类型 在一个类里面用多种验证方法里比较有用
addClassRules(rules)返回:undefined增加组合验证类型 在一个类里面用多种验证方法里比较有用,这个是一下子加多个

这篇关于jQuery Validate密码验证的基本使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116944

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传