formValidator3.3的ajaxValidator一些异常分析


Posted in Javascript onJuly 12, 2011

ajaxvalidator是大家问的最多的问题,修正一个bug(感谢网友“じ??w√”),并把大家最关心的问题,再做一次阐述。
bug现象:无论校验有没有校验通过,当控件再次得到焦点而再次失去焦点的时候tip里的提示就会停滞在得到焦点的提示
历次升级的相关记录:
a、为AjaxValidator添加一个addidvalue属性(是否自动添加id和值到url参数后面)
为了修复AjaxValidator在配置信息的时候,取不到运行时候值的bug,插件将自动在url后面自动添加,形式为"id=value"的网页参数。
在服务器端,你可以通过Request.querystring["id"]来取值。 具体演示请看demo1里的用户名输入和Default.aspx
异常说明:
开发过程中仍会出现乱码问题
例如:

$("#thename").formValidator({onfocus:"用户名至少6个字符,最多40个字符",oncorrect:"输入格式正确"}).inputValidator({min:6,max:40,onerror:"你输入的用户名非法,请确认"})//.regexValidator({regexp:"username",datatype:"enum",onerror:"用户名格式不正确"}) 
.ajaxValidator({ 
type : "get", 
url : "login.do", 
data:"action=isExist", 
datatype : "xml", 
success : function(data){ 
root = data.documentElement; 
var rowSet = root.selectNodes("//delete"); 
if( rowSet.item(0).selectSingleNode("value").text == "0" ) 
{ 
return true; 
} 
else 
{ 
return false; 
} 
}, 
buttons: $("#saveId"), 
error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");}, 
onerror : "该用户名不可用,请更换用户名", 
onwait : "正在对用户名进行合法性校验,请稍候..."//function(){alert($("#pcode").val());} 
});

说明:
data:"action=isExist&thename="+$('#thename').val(),这种方式是失效的,因为$('#thename').val()是固定不变的,而且是初始值,通常为空.
修改源码:
formValidator.js
//ajax校验
ajaxValid : function(returnObj)的方法中

var parm = "clientid="+id+"&"+id+"="+encodeURIComponent(srcjo.val());
改为:
var parm = "clientid="+id+"&"+id+"="+encodeURIComponent(encodeURIComponent(srcjo.val()));
因为只有通过前台两次编码,后台一次解码就可以解决乱码问题
thename=java.net.URLDecoder.decode(thename,"UTF-8");
注意前台必须编码两次,否则会仍是乱码.
Javascript 相关文章推荐
常用的javascript function代码
May 23 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
js保留两位小数使用toFixed实现
Jul 29 Javascript
Jquery:ajax实现翻页无刷新功能代码
Aug 05 Javascript
jQuery简单实现上下,左右滑动的方法
Jun 01 Javascript
Javascript字符串常用方法详解
Jul 21 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
Aug 01 Javascript
浅析vue数据绑定
Jan 17 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 Javascript
Vue-router 中hash模式和history模式的区别
Jul 24 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
在IE浏览器中resize事件执行多次的解决方法
Jul 12 #Javascript
JQuery获取当前屏幕的高度宽度的实现代码
Jul 12 #Javascript
Jquery进度条插件 Progress Bar小问题解决
Jul 12 #Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
Jul 11 #Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
Jul 11 #Javascript
jQuery :nth-child前有无空格的区别分析
Jul 11 #Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
Jul 11 #Javascript
You might like
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
PHP读取Excel类文件
2017/05/15 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
Python正则表达式匹配中文用法示例
2017/01/17 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
python 2.7.14安装图文教程
2018/04/08 Python
python修改FTP服务器上的文件名
2019/09/11 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Django权限设置及验证方式
2020/05/13 Python
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
村委会贫困证明
2014/01/14 职场文书
社区七一党员活动方案
2014/01/25 职场文书
办公设备采购方案
2014/03/16 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
退休欢送会致辞
2015/07/31 职场文书
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏
Windows server 2016服务器基本设置
2022/08/14 Servers