jquery.validate中使用remote,remote相同值不校验问题解决
jquery.validate中使用remote,
remote相同值不校验问题解决
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年9月24日 16:18:45 星期四
http://fanshuyao.iteye.com/
remote使用方法:
remote: {
async:false,//默认为异步请求,设置false为同步
url: $("#basePath").val() + "/checkPhoneValidateCode",
//后台处理程序。远程地址只能输出 "true" 或 "false",不能有其他输出。
type: "post" //数据发送方式
}
remote没有结果处理函数,服务器校验后只能输出 "true" 或 "false",不能有其他输出。
remote默认会把校验的属性和值作为参数传到服务器。
而data可以增加其他参数。
remote: {
url: "check-email.php", //后台处理程序
type: "post", //数据发送方式
dataType: "json", //接受数据格式
data: { //要传递的数据
username: function() {
return $("#username").val();
}
}
}
问题描述:
在jquery.validate中使用remote,但是remote只是校验第一次,如果通过了,下次及之后都不会再向服务器请求。
例如验证码,先输入验证码,校验通过后,然后点击换一个验证码,验证码的校验一样是通过的,因为remote没有再向服务器重新发送校验请求。
原因是jquery.validate代码中使用了如下代码:
意思是如果之前已经校验了,则直接使用之前的验证结果。
if ( previous.old === value ) {
return previous.valid;
}
解决方法一:(不推荐)
在jquery.validate.js中找到代码,然后把上面的代码注释掉。
但这种方法不被推荐,怕影响到使用功能。
解决方法二:
既然有数据之前的验证结果,我们就可以把之前的验证结果清除。
($(".remote")为jquery选择器,.remote为自己设置的Class。)
/**
* 移除validate的缓存数据
*/
function clearPreviousValue(){
if($(".remote").data("previousValue")){
$(".remote").removeData("previousValue");
}
};
或者设置为Null
/**
* 移除validate的缓存数据
*/
function clearPreviousValue(){
if($(".remote").data("previousValue")){
$(".remote").data("previousValue").old = null;
}
};
可以给需要远程校验的属性加上一个change事件,清除之前校验结果,这样就方便很多。
$("#phone,#phoneValidateCode").change(function(){
clearPreviousValue();
});
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年9月24日 16:18:45 星期四
http://fanshuyao.iteye.com/
jquery.validate中使用remote,remote相同值不校验问题解决的更多相关文章
- 用JQuery Validate框架,在IE8下验证报错问题解决
网站后台用了JQuery Validate框架,版本是jQuery Validation Plugin 1.8.1 因为用的时间比较久了,一直没有更新新版本. 最近公司信息录入员有调整,没有IE11浏 ...
- jquery.validate.js表单验证
一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...
- ASP.NET MVC Jquery Validate 表单验证的多种方式
在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...
- jQuery.Validate验证库详解
一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...
- jquery.validate+jquery.form提交的三种方式
原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种 ...
- jQuery.Validate验证库
一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...
- [转]ASP.NET MVC Jquery Validate 表单验证的多种方式介绍
在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...
- Jquery Validate 表单验证的多种方式
ASP.NET MVC Jquery Validate 表单验证的多种方式 在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体 ...
- 【转】jquery.validate.js表单验证
一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...
随机推荐
- POJ - 3264 Balanced Lineup 线段树解RMQ
这个题目是一个典型的RMQ问题,给定一个整数序列,1~N,然后进行Q次询问,每次给定两个整数A,B,(1<=A<=B<=N),求给定的范围内,最大和最小值之差. 解法一:这个是最初的 ...
- 在VS2008中配置WDK7600驱动开发环境
网上这类资料多如牛毛,也许很多人都是转来转去,却很有人去真正的测试,有时候感觉确实对他人也是一种误导. 这里是我自己在VS2008 + WDK7600.16385.0 + DDKWizard配置自己的 ...
- Android Bitmap是不能比较的,这样做是错误的
代码1: Bitmap dir = BitmapFactory.decodeResource(context.getResources(), R.drawable.netdisc_search_lis ...
- 杨佩昌:中国官员去德国考察看什么两眼发光 z
令中国人诧异的德国物价 只要是花费大量人工的行业,就很贵 □杨佩昌 德国是欧洲商品价格的洼地,连精明的瑞士人也开车到德国加油购物 一 2012年凤凰网组织十大著名博主前往澳洲考察并与前总理陆克文对话, ...
- HDU-3790 最短路径问题
最短路径问题 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submis ...
- Toad for Oracle 使用文档
Toad®for Oracle 版本 12.0.1 发行说明 30 July 2013 目录 欢迎使用 Toad for Oracle 版本更新 解决的问题和改进 已知问题 第三方已知问题 升级和兼容 ...
- 进军es6(2)---解构赋值
本该两周之前就该总结的,但最近一直在忙校招实习的事,耽误了很久.目前依然在等待阿里HR面后的结果中...但愿好事多磨!在阿里的某轮面试中面试官问到了es6的掌握情况,说明es6真的是大势所趋,我们更需 ...
- Linux学习笔记32——select()函数分析【转】
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect.accept.recv或recvfrom这样的阻塞程序 ...
- android 更新uI主线程
http://www.cnblogs.com/wenjiang/p/3180324.html handleMessage 好用
- head tail 命令
[一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1000 [二]显示1000行到3000行 cat ...