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 validate 验证注册表单实例演示
Mar 25 Javascript
js 中的switch表达式使用示例
Jun 03 Javascript
js中的push和join方法使用介绍
Oct 08 Javascript
js获取IFRAME当前的URL的方法
Nov 13 Javascript
jquery的总体架构分析及实现示例详解
Nov 08 Javascript
深入理解JavaScript中的对象
Jun 04 Javascript
一个超简单的jQuery回调函数例子(分享)
Aug 08 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
Nov 10 Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
详解Next.js页面渲染的优化方案
Jan 27 Javascript
详解JavaScript 的变量
Mar 08 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中动态调用函数的方法
2015/03/16 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
捕获关闭窗口的脚本
2009/01/10 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
jquery之empty()与remove()区别说明
2010/09/10 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
python下载图片实现方法(超简单)
2017/07/21 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
设置python3为默认python的方法
2018/10/31 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
Python模块future用法原理详解
2020/01/20 Python
Python 使用office365邮箱的示例
2020/10/29 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
课程设计心得体会
2013/12/28 职场文书
初中地理教学反思
2014/01/11 职场文书
春节联欢会策划方案
2014/05/16 职场文书
爱心捐书倡议书
2015/04/27 职场文书
请客吃饭开场白
2015/06/01 职场文书
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
用Python编写简单的gRPC服务的详细过程
2021/07/04 Python
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技