作家
登录

formValidator3.3的ajaxValidator一些异常分析

作者: 来源:www.28hudong.com 2013-03-30 00:49:41 阅读 我要评论

ajaxvalidator是大家问的最多的问题,修正一个bug(感谢网友“じ龍峸√”),并把大家最关心的问题,再做一次阐述。 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"); 注意前台必须编码两次,否则会仍是乱码.

  推荐阅读

  33个优秀的jQuery 教程分享(幻灯片、动画菜单)

How To Build a Sliding Feature Slideshow with jQuery Fullscreen Gallery with Thumbnail Flip Moving Boxes Content with jQuery Animated Skills Diagram with Raphaël jQuery and CSS single page >>>详细阅读


本文标题:formValidator3.3的ajaxValidator一些异常分析

地址:http://www.17bianji.com/kaifa2/JS/24435.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)