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 相关文章推荐
Prototype Object对象 学习
Jul 12 Javascript
Javascript倒计时代码
Aug 12 Javascript
简单的两种Extjs formpanel加载数据的方式
Nov 09 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
Jun 23 Javascript
javascript原型模式用法实例详解
Jun 04 Javascript
AngularJS中的API(接口)简单实现
Jul 28 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
Feb 21 Javascript
javascript闭包的使用之按钮切换功能
Aug 30 Javascript
vue+php实现的微博留言功能示例
Mar 16 Javascript
JS前端模块化原理与实现方法详解
Mar 17 Javascript
vue 出现data-v-xxx的原因及解决
Aug 04 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
在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仿ZOL分页类代码
2008/10/02 PHP
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
js读取本地excel文档数据的代码
2010/11/11 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
python对url格式解析的方法
2015/05/13 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python实现的栈(Stack)
2018/01/26 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
党员自我评议对照检查材料
2014/09/27 职场文书
文员岗位职责
2015/02/04 职场文书
摘录式读书笔记
2015/07/01 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
离婚协议书范文2016
2016/03/18 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android