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 相关文章推荐
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
Apr 27 Javascript
原生js实现给指定元素的后面追加内容
Apr 10 Javascript
Js,alert出现乱码问题的解决方法
Jun 19 Javascript
JS & JQuery 动态添加 select option
Jun 08 Javascript
全面解析JavaScript中“&&”和“||”操作符(总结篇)
Jul 18 Javascript
js实现加载页面就自动触发超链接的示例
Aug 31 Javascript
基于bootstrap写的一点localStorage本地储存
Nov 21 Javascript
javascript与PHP动态往类中添加方法对比
Mar 21 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
微信小程序实现循环动画效果
Jul 16 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 Javascript
微信小程序新闻网站详情页实例代码
Jan 10 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
pw的一个放后门的方法分析
2007/10/08 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
python下载文件时显示下载进度的方法
2015/04/02 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
Python自定义简单图轴简单实例
2018/01/08 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
Tostadora意大利:定制T恤
2019/04/08 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
关于责任的演讲稿
2014/05/20 职场文书
大学生标准自荐书
2014/06/15 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
端午节活动总结报告
2015/02/11 职场文书
2016年情人节问候语
2015/11/11 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
nginx服务器的下载安装与使用详解
2021/08/02 Servers