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 浏览器判断 绑定事件 arguments 转换数组 数组遍历
Jul 06 Javascript
JavaScript 获取事件对象的注意点
Jul 29 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
JS实现IE状态栏文字缩放效果代码
Oct 24 Javascript
BootStrap实现带关闭按钮功能
Feb 15 Javascript
Vue 父子组件、组件间通信
Mar 08 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
Mar 09 Javascript
jQuery异步提交表单实例
May 30 jQuery
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 Javascript
Vue开发之封装分页组件与使用示例
Apr 25 Javascript
微信小程序如何使用云开发
May 17 Javascript
js实现限定范围拖拽的示例
Oct 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中使用PDF文档功能
2006/10/09 PHP
php学习 字符串课件
2008/06/15 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
Python Tkinter简单布局实例教程
2014/09/03 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
Python原始套接字编程实例解析
2020/01/29 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
导游的职业规划书范文
2013/12/27 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
2014年少先队工作总结
2014/12/03 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis