JQuery的Validation插件中Remote验证的中文问题

根据上次的经验,我将

代码如下:

contentType: "application/x-www-form-urlencoded; charset=utf-8",

加入到ajax请求的参数中,结果这次居然不起作用了。

多次观察Fiddler结果,发现无效后,只好打开JQuery.Validation.js寻求答案了。

在remote的代码中,我发现:


代码如下:

...
var data = {};
data[element.name] = value;
$.ajax($.extend(true, {
url: param,
mode: "abort",
port: "validate" + element.name,
dataType: "json",
data: data,
....

原来插件自己定义了提交的数据,直接将要验证的数据以json格式传给服务器了。难怪针对form的编码定义无效。马上将value进行强制的编码encodeURIComponent(value),果然就好了!

后记:

这种方法在服务器代码处理的时候,必须显式地解码数据,通用性很差。于是,之后还是回到起点来研究更好的方法。

为了防止Validation插件对输入数据的处理,我试着采用自己的Option来覆盖Validation的Option定义:

代码如下:

remote: {
url: "ajax.aspx?a=xxx",
type: "post",
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: { txt1: function() { return $("#txt1").val(); } }
}

然后在服务器端代码中,取得Form数据中的对应数据,这样就避免了对Validation的修改,同时也满足了我的要求。
原文链接: http://www.luyuliang.com/post/chinese-issue-in-jquery-validation-plugin.aspx

(0)

相关推荐

  • ASP.NET中实现jQuery Validation-Engine的Ajax验证

    见下图: 验证的例子:http://www.position-relative.net/creation/formValidator/ 官方地址: http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 这个插件支持大部分的浏览器,但由于有使用到了css3的阴影和圆角样式,所以在IE浏览器下无法看到圆角和阴影效果(IE 9 支持圆角效果). 本文主要内容是

  • 修改jQuery Validation里默认的验证方法

    在最近做的一个项目中,使用jQuery Validation验证日期,遇到的问题和一个没有预料到的情况是,在ASP.NET MVC 3的项目中,对于 <input type="date" data-val="true" />的元素,如果调用form的valid方法验证form,虽然我没有添加日期验证的设置,仅仅type="date",但其依然调用了日期验证逻辑来验证日期格式是否正确.这本来是个不错的行为,但问题在于,其支持的日期格式有

  • ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能

    页面样式代码: 复制代码 代码如下: <style type="text/css"> .header { background-color: #CCCCCC; color: White; font-size: x-large; } .content { background-color: White; font-weight: lighter; font-size: small; } .content td { text-align: left; } .mandatory

  • ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能

    简单来说,jQuery validation插件就是来校验表单form里面元素输入的内容是否满足业务规则,如果不满足,可以给出用户自定义的提示信息.该插件不仅默认有一些校验规则,如校验内容是否为空,内容的长度是否符合给定的值,还可以根据用户自定义业务规则,而且错误提示信息,也可以根据用户的要求自定义显示.看来这个插件的功能确实很强大,是不是迫不及待想使用了.好的,那我们就开始简介如何使用它. jQuery validation 插件下载地址:http://plugins.jquery.com/p

  • Jquery validation remote 验证的缓存问题解决方法

    最近项目中一直在用 Jquery validation 做校验,结合bootstrap 和 jquery form 感觉效果不错.但是remote验证的缓存问题让我头痛了很久,几乎就像放弃这款插件了. 举例说明: 现有学校,年级,班级实体 在同一学校下不能有相同的年级,在同一年级下不能有相同的班级 以同一学校下不能有相同年级为例,在验证的时候用remote方式: JS 复制代码 代码如下: "gradeId" : { required : true, min : 0, remote:

  • jQuery Validation实例代码 让验证变得如此容易

    使用客户端验证可以有效的减少数据往返服务器和客户端的次数,有利于提高服务器的资源利用路,并且还能够给用户直观,快速的回应. 在Web 2.0时代,这显得尤其重要,我想大家一定和我一样讨厌用基础的javascript写着烦人的验证.现在服务器端的验证有比较好的框架可以解决,ASP.NET MVC就可以很好的完成这样的工作,所以对于.net开发来说,拥有一个好的客户端养正框架对于开发效率的提高起着至关重要的作用. 我们可以通过下面的地址获得这个JS框架 JQuery jQuery Validatio

  • ASP.NET中实现jQuery Validation-Engine的Ajax验证实现代码

    见下图: 验证的例子:http://www.position-relative.net/creation/formValidator/ 官方地址: http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 这个插件支持大部分的浏览器,但由于有使用到了css3的阴影和圆角样式,所以在IE浏览器下无法看到圆角和阴影效果(IE 9 支持圆角效果). 本文主要内容是

  • asp.net Page.EnableEventValidation 属性验证服务器控件的回发和回调事件出现的错误

    本以为页面很简单不会出现问题,但运行时出现了如下错误: Page.EnableEventValidation 属性 参看了一下MSDN,获取或设置一个值,该值指示页面验证回发事件,还是验证回调事件..NET Framework出于安全考虑需要为服务器端控件的回发和回调事件进行注册,此事件验证机制可消除未经授权的回发请求和回调带来的风险.通过此模型,控件可在呈现期间注册其事件,然后在回发或回调期间验证这些事件.默认情况下,ASP.NET 中的所有事件驱动控件均使用此功能. 第一反应,既然启用了事件

  • jQuery插件学习教程之SlidesJs轮播+Validation验证

    SlidesJs(轮播支持触屏)--官网(http://slidesjs.com) 1.简介 SlidesJs是基于Jquery(1.7.1+)的响应幻灯片插件.支持键盘,触摸,css3转换. 2.代码 <!doctype html> <head> <style> /* Prevents slides from flashing */ #slides { display:none; } </style> <script src="http:/

  • JQuery的Validation插件中Remote验证的中文问题

    根据上次的经验,我将 复制代码 代码如下: contentType: "application/x-www-form-urlencoded; charset=utf-8", 加入到ajax请求的参数中,结果这次居然不起作用了. 多次观察Fiddler结果,发现无效后,只好打开JQuery.Validation.js寻求答案了. 在remote的代码中,我发现: 复制代码 代码如下: ... var data = {}; data[element.name] = value; $.aja

  • jquery validation插件表单验证的一个例子

    messages_cn.js <!--验证国际化,中文--> (不引用messages_cn.js是英文的提示,用了是中文) 复制代码 代码如下: required: "This field is required.", remote: "Please fix this field.", email: "Please enter a valid email address.", url: "Please enter a va

  • jQuery插件之validation插件

    前面的话 最常使用javascript的场合就是表单的验证,而jQuery作为一个优秀的javascript库,也提供了一个优秀的表单验证插件--Validation.Validation是历史最悠久的jQuery插件之一,经过了全球范围内不同项目的验证,并得到了许多Web开发者的好评.本文将详细介绍validation插件 概述 jQuery Validate插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方

  • Jquery Validation插件防止重复提交表单的解决方法

    由于在项目中应用了Jquery Validation表单验证插件,所以要实现在Validation验证完毕后,提交form,然后禁止按钮.CodeProject上有一个DisableBtnPostBack项目,但不无法和Jquery Validation结合,代码先贴出来,给大家提示下,碰到这种情况不要使用该代码.代码如下: js: 代码 复制代码 代码如下: function disableBtn(btnID, newText) { Page_IsValid = null; if (typeo

  • jQuery Validation插件remote验证方式的Bug解决

    不过奇怪的是,最近用下来感觉有些古怪,因为好像有些死板,已有功能的应变能力还不强,甚至还有个奇怪的Bug.任何项目有Bug其实也正常,但这个Bug其实是一个文档上已经记载了,却没有实现的功能,这就有些说不过去了.这个问题便出在remote验证方式上,还好修改起来非常容易,在此记录一下,也方便以后的参考. 在表单验证时,有时候会需要发一个AJAX请求去服务器上进行判断,例如在用户注册时检查用户名是否存在.jQuery Validation插件提供了一种remote方式来实现这一点.例如我可以这样验

  • jQuery Validate插件ajax方式验证输入值的实例

    项目中经常会遇到需要后台验证问题,如用户名.用户账号是否存在等.使用jQuery Validate插件可以使用remote校验规则完成验证. 示例: 一.基本用法 1.需要验证的表单 <form id="registForm"> <input type="text" id="username" name="username"> </form> 2.js 使用remote校验规则,最简单粗暴的

  • jQuery Password Validation密码验证

    jQuery Password Validation(密码验证)插件扩展了 jQuery Validate 插件,提供了两种组件: 一种评价密码的相关因素的功能:比如大小写字母的混合情况.字符(数字.特殊字符)的混合情况.长度.与用户名的相似度(可选的). 一种使用评价功能显示密码强度的验证插件自定义方法.显示的文本可以被本地化. 您可以简单地自定义强度显示的外观.本地化消息显示,并集成到已有的表单中. 该插件目前版本是 1.0.0. 使用方式 如需使用 Password Validation(

  • jQuery validate插件实现ajax验证重复的2种方法

    本文实例讲述了jQuery validate插件实现ajax验证重复的2种方法.分享给大家供大家参考,具体如下: jquery validate 经过这种多年的改良,已经很完善了.它能满足80%的验证需要,如果validate自带的功能,不能满足我们需求,它提供了addMethod来扩展功能.下面就举个小例子来说明一下addMethod的用法. 完整demo实例代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//

随机推荐