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 相关文章推荐
js对象的构造和继承实现代码
Dec 05 Javascript
js数组中如何随机取出一个值
Jun 13 Javascript
Javascript遍历table中的元素示例代码
Jul 08 Javascript
AngularJS入门教程之静态模板详解
Aug 18 Javascript
关于Javascript中document.cookie的使用
Mar 08 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
May 14 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
Oct 09 Javascript
小程序页面动态配置实现方法
Feb 05 Javascript
微信小程序以ssm做后台开发的实现示例
Apr 08 Javascript
jQuery实现倒计时功能完整示例
Jun 01 jQuery
Javascript如何实现扩充基本类型
Aug 26 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 foreach、while性能比较
2009/10/15 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
php导出生成word的方法
2015/12/25 PHP
php json转换相关知识(小结)
2018/12/21 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
python中的sort方法使用详解
2014/07/25 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
澳大利亚在线时尚精品店:Hello Molly
2018/02/26 全球购物
如何高效率的查找一个月以内的数据
2012/04/15 面试题
教师中国梦演讲稿
2014/04/23 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
SpringBoot+VUE实现数据表格的实战
2021/08/02 Java/Android
php双向队列实例讲解
2021/11/17 PHP