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 不能释放内存.
Sep 07 Javascript
jquery 1.4.2发布!主要是性能与API
Feb 25 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
Sep 14 Javascript
Jquery之美中不足小结
Feb 16 Javascript
详谈javascript精度问题与调整
Jul 08 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 Javascript
vue-router的HTML5 History 模式设置
Sep 08 Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 Javascript
JS typeof fn === 'function' && fn()详解
Aug 22 Javascript
详解阿里Node.js技术文档之process模块学习指南
Jan 04 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
详谈javascript异步编程
2016/02/21 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
python基础教程之对象和类的实际运用
2014/08/29 Python
python使用Tkinter显示网络图片的方法
2015/04/24 Python
python中的格式化输出用法总结
2016/07/28 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
简单实现python聊天程序
2018/04/01 Python
Python 实现选择排序的算法步骤
2018/04/22 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
pycharm的python_stubs问题
2020/04/08 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
python让函数不返回结果的方法
2020/06/22 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
高考自主招生自荐信
2013/10/20 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
公司总经理任命书
2014/06/05 职场文书
治安消防安全责任书
2014/07/23 职场文书
法定授权委托证明书
2014/09/27 职场文书
学校师德师风整改方案
2014/10/28 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
vscode中使用npm安装babel的方法
2021/08/02 Javascript