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 相关文章推荐
jQuery 动画弹出窗体支持多种展现方式
Apr 29 Javascript
jquery实现树形二级菜单实例代码
Nov 20 Javascript
jQuery学习笔记之2个小技巧
Jan 19 Javascript
BootStrap实现树形目录组件代码详解
Jun 21 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 Javascript
Angularjs为ng-click事件传递参数
Jun 15 Javascript
js如何编写简单的ajax方法库
Aug 02 Javascript
electron demo项目npm install安装失败的解决方法
Feb 06 Javascript
vue监听input标签的value值方法
Aug 27 Javascript
vue 监听屏幕高度的实例
Sep 05 Javascript
JavaScript中的执行环境和作用域链
Sep 04 Javascript
JavaScript实现网页动态生成表格
Nov 25 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目录操作函数之获取目录与文件的类型
2010/12/29 PHP
php断点续传之如何分割合并文件
2014/03/22 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
详解php中 === 的使用
2016/10/24 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
php语法检查的方法总结
2019/01/21 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
python获取指定时间差的时间实例详解
2017/04/11 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
python多线程实现TCP服务端
2019/09/03 Python
Python socket模块方法实现详解
2019/11/05 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
《锄禾》教学反思
2014/04/08 职场文书
公司出纳岗位职责
2015/03/31 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
2019餐饮行业创业计划书!
2019/06/27 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
Python+pyaudio实现音频控制示例详解
2022/07/23 Python