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插件jqeuryUI做网页对话框效果!简单
Apr 14 Javascript
jQuery遍历json中多个map的方法
Feb 12 Javascript
js实现的简单radio背景颜色选择器代码
Aug 18 Javascript
bootstrap-treeview自定义双击事件实现方法
Jan 09 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
微信小程序 实战程序简易新闻的制作
Jan 09 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
Jun 20 Javascript
javascript中的replace函数(带注释demo)
Jan 07 Javascript
Node.js的Koa实现JWT用户认证方法
May 05 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
Sep 12 Javascript
在Vue环境下利用worker运行interval计时器的步骤
Aug 01 Javascript
vue大型项目之分模块运行/打包的实现
Sep 21 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
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
基于jQuery的自动完成插件
2011/02/03 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
Python CSV模块使用实例
2015/04/09 Python
python去除所有html标签的方法
2015/05/05 Python
python监控文件并且发送告警邮件
2018/06/21 Python
python的range和linspace使用详解
2019/11/27 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
中学教师请假制度
2014/02/03 职场文书
21岁生日感言
2014/02/27 职场文书
致共产党员倡议书
2014/04/16 职场文书
旷课检讨书范文
2014/10/30 职场文书
见习报告格式要求
2014/11/04 职场文书
2014年保密工作总结
2014/11/22 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
Redis高可用集群redis-cluster详解
2022/03/20 Redis