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相同值不校验问题解决的更多相关文章

  1. 用JQuery Validate框架,在IE8下验证报错问题解决

    网站后台用了JQuery Validate框架,版本是jQuery Validation Plugin 1.8.1 因为用的时间比较久了,一直没有更新新版本. 最近公司信息录入员有调整,没有IE11浏 ...

  2. jquery.validate.js表单验证

    一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...

  3. ASP.NET MVC Jquery Validate 表单验证的多种方式

    在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...

  4. jQuery.Validate验证库详解

    一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...

  5. jquery.validate+jquery.form提交的三种方式

    原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种 ...

  6. jQuery.Validate验证库

    一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...

  7. [转]ASP.NET MVC Jquery Validate 表单验证的多种方式介绍

    在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...

  8. Jquery Validate 表单验证的多种方式

    ASP.NET MVC Jquery Validate 表单验证的多种方式 在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体 ...

  9. 【转】jquery.validate.js表单验证

    一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...

随机推荐

  1. 为什么手机连接wifi会显示已停用?

    1.通常导致手机连接WiFi显示“已停用”故障的原因是由于无线路由器“安全模式”设置不当造成的,对此我们可以通过以下方法来解决: 2.根据无线路由器背面的信息(包括路由器IP地址,登陆用户名和密码), ...

  2. 两个有关Knockout自定义拓展方法fn的小技巧

    Adding custom functions using "fn" 让observable自增/自减 最简单的方法是self.num(self.num() + 1), 但是这个写 ...

  3. 透过表象看本质!?之二——除了最小p乘,还有PCA

    如图1所示,最小p乘法求得是,而真实值到拟合曲线的距离为.那么,对应的是什么样的数据分析呢? 图1 最小p乘法的使用的误差是.真实值到拟合曲线的距离为 假如存在拟合曲线,设直线方程为.真实值到该曲线的 ...

  4. asp.net Context.User.Identity.Name说明

    今天做了一个身份验证页面,基本实现功能,却不能显示当前用户姓名,自己MSDN半天一无所获,问题就在Context.User.Identity.Name:Context是HttpContext类,Use ...

  5. 【转】Android中intent传递对象和Bundle的用法

    原文网址:http://blog.csdn.net/lixiang0522/article/details/8642202 android中的组件间传递的对象一般实现Parcelable接口,当然也可 ...

  6. 【转】android-support-v7-appcompat.jar 的安装及相关问题解决 --- 汇总整理

    原文网址:http://tdppro.blog.51cto.com/749956/1388853 1.DownLoading the Support Libraries 1)Start the And ...

  7. vs2010 更新jQuery智能提示包

    vs2010 更新jQuery只能提示包时,可以直接在NuGet中更新 jquery-2.1.0-vsdoc.js jquery-2.1.0.js jquery-2.1.0.min.js jquery ...

  8. < < < 2013年国家集训队作业 > > >

    完成题数/总题数:  道/37道 1.  A1504. Book(王迪): 数论+贪心   ★★☆        2013中国国家集训队第二次作业 2.  A1505. 树(张闻涛): 倍增LCA+可 ...

  9. Android 快捷方式

    1. 需要权限: <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT&quo ...

  10. usaco 猜数游戏

    Description 为了提高智商,锻炼思维能力,奶牛设计了一个猜数游戏.游戏开始前,贝西会在牛棚后面摆上N个数字.所有数字排成一条直线,按次序从1到N编号.每个数字在1到10^9之间,没有两个数字 ...