`

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/

 

 

 

 

 

 

 

 

1
1
分享到:
评论

相关推荐

    jquery.validate插件remote规则相同值不验证的问题解决办法

    jquery.validate插件remote规则相同值不验证的问题解决办法.方法绝对有效

    jquery.validate.js表单验证.pdf

    4. 验证方法:文件中提到了remote方法,这是一种通过Ajax检查表单字段值是否唯一的方法。例如,开发者可以在表单提交前通过Ajax请求发送字段值到服务器端的check.php进行校验,这样可以确保用户输入的数据是唯一的。...

    jquery.validate.min.js

    修改validate的remote校验,支持处理返回格式{success:false,message:"提示消息"}

    jQuery验证控件jquery.validate.js使用说明+中文API

    jQuery 验证控件 jquery.validate.js 使用说明 + 中文 API jQuery 验证控件 jquery.validate.js 是一个功能强大且广泛使用的 JavaScript 验证插件,旨在帮助开发者快速实现表单验证功能。下面是 jquery.validate....

    jquery.validate的使用说明介绍

    10. equalTo: "#field",规定输入必须和表单中的其他字段值相同。 11. accept: 规定输入必须拥有合法的文件后缀。 12. maxlength: 5,规定字符串输入的最大长度(汉字算一个字符)。 13. minlength: 10,规定字符串...

    jquery.validate.js 用法

    在给定的部分内容中,我们看到了一段具体的使用`jquery.validate.js`的代码实例。下面我们将对这段代码进行详细分析: ```javascript $().ready(function(){ $("#signupForm").validate({ rules:{ loginname:{ ...

    jquery.validate知识要点

    `jQuery.validate`插件是一种基于jQuery的表单验证工具,它可以帮助开发者快速实现客户端数据校验功能,提高用户体验的同时减少服务器端的压力。该插件支持多种内置验证规则,并且可以方便地扩展自定义规则。 #### ...

    jQuery.validate.js+API中文

    本文将详细介绍`jQuery.validate.js`的API功能以及如何使用这些API来增强表单验证的功能。 #### 主要知识点 1. **基本用法** 2. **Validator对象的方法** 3. **自定义验证方法** 4. **内置验证规则** 5. `validate...

    jquery.validate_Validation

    在使用jQuery Validate之前,首先需要引入JQuery库和jQuery Validate插件的JavaScript文件。确保JQuery版本至少为1.2.6,兼容1.3.2。以下是最基础的引入方式: ```html <script src="jquery.js" type="text/...

    jquery的校验规则(jquery.validate)

    `jQuery Validate` 是一个非常流行的 jQuery 插件,用于对网页中的表单进行验证。它提供了丰富的预定义验证规则,帮助开发者轻松实现各种复杂的用户输入验证,从而确保数据的准确性和安全性。以下是对 `jQuery ...

    jquery.validate.js的用法

    ### jQuery.validate.js 使用详解 #### 一、简介 jQuery.validate.js 是一款强大的 jQuery 插件,主要用于客户端表单验证。该插件简化了原本复杂的表单验证过程,并提供了丰富的内置验证方法,支持自定义验证规则...

    jquery.validate.min.zip

    4. **错误元素高亮**:当输入不符合规则时,jQuery Validate能自动高亮显示错误的表单元素,方便用户发现并修正问题。 三、使用步骤 1. **引入依赖**:首先,确保页面中已经引入了jQuery库和jQuery Validate插件的...

    jquery+validate.js+验证规则文件

    2 remote:"check.php" 使用 ajax 方法调用 check.php 验证输入值。 3 email:true 必须输入正确格式的电子邮件。 4 url:true 必须输入正确格式的网址。 5 date:true 必须输入正确格式的日期。日期校验 ie6 出错,慎...

    jQuery.Validate Api中文

    在描述中提到,jQuery Validate是一个轻量级的JavaScript库,压缩后大小为21KB,兼容CSS3和各种主流浏览器。 知识点一:jQuery Validate基本使用方法 1. 引入jQuery和jQuery Validate库文件。 2. 使用`.validate()...

    jquery.validate验证快速上手

    通过使用 `jQuery Validate`,开发者能够轻松地实现对表单输入的有效性检查,提高用户体验的同时减少后端负载。 #### 二、jQuery Validate 默认验证规则及提示信息 `jQuery Validate` 提供了一系列预设的验证规则...

    jquery validate 使用详解

    ### jQuery Validate 插件使用详解 #### 一、概述 jQuery Validate 是一款强大的表单验证插件,基于 jQuery 框架开发而成。它能够帮助开发者轻松实现客户端表单验证功能,大大提高了用户体验并减少了服务器端的...

    jQuery的表单校验插件validate

    jQuery的表单校验插件`validate`是前端开发中常用的一个工具,它极大地简化了对HTML表单数据的验证过程。这个插件基于流行的JavaScript库jQuery构建,为开发者提供了丰富的选项和方法来定制表单验证规则,确保用户...

Global site tag (gtag.js) - Google Analytics