随笔-18  评论-1877  文章-0  trackbacks-20


升级记录


在升级的过程中发现了一些bug,在这个版本里做了修正;使用新版的jQuery类库,精简了不少代码。
1、升级的过程中,把inputvalidator函数的里的属性defaultvalue弄错了,导致默认值都失效。
现更正为如下:
a、最后一个版本属性名为defaultval,现更正为了原来的属性名defaultvalue
b、checkbox和radio以及select控件都必须用数组进行初始化,请看demo1里的几个控件的默认值。

2、ajaxvalidator是大家问的最多的问题,修正一个bug(感谢网友“じ龍峸√”),并把大家最关心的问题,再做一次阐述。
bug现象:无论校验有没有校验通过,当控件再次得到焦点而再次失去焦点的时候tip里的提示就会停滞在得到焦点的提示
历次升级的相关记录:
a、为AjaxValidator添加一个addidvalue属性(是否自动添加id和值到url参数后面)
为了修复AjaxValidator在配置信息的时候,取不到运行时候值的bug,插件将自动在url后面自动添加,形式为"id=value"的网页参数。在服务器端,你可以通过Request.querystring["id"]来取值。 具体演示请看demo1里的用户名输入和Default.aspx
b、AjaxValidator校验方式,将自动再增加一个参数到请求的地址后面"clientid=触发校验的表单ID"。
如果你是一个jQuery集合做校验,如果用到了AjaxValidator校验方式,在服务器端,你无法知道触发校验的是哪个 表单元素,所以在请求的地址后面追加"clientid=触发校验的表单ID"。

3、上次更新的过程中,压缩包里忘记放入datepicker日期控件,一起更正

 

 

 

2008/12/7 01:44:00 jQuery formValidator 3.2ver

1、为compareValidator里的datatype属性增加新的类型:date、datetime。
那么到目前为止,插件支持4种常类型:"string"、"number"、"date"、"datetime",默认值为"string"

2、为inputValidator里的属性type增加类型为date、datetime,min和max必须为string类型,会自动转换
"size":表示比较长度 ,默认值
"number":数值型比较
"string":字符型比较
"date":短日期类型
"datetime":长日期类型

3、为initConfig增加属性errorfocus,表示发生错误的时候,第一个出错控件是否获得焦点。默认获得焦点。

4、initConfig增加属性forcevalid属性;formValidator增加forcevalid属性,表示是否一直输入正确为止才允许离开焦点。
initConfig的forcevalid优先等级最高,即全局配置;而formValidator里的forcevalid是局部设置。

5、initConfig增加属性wideword,默认为false,表示是否把一个汉字当做一个长度的参数。
请见demo1最上面的按钮演示。

6、增加ajaxValidator对password控件的支持

7、修正升级中出现的一些bug,现都已修复
在升级的过程中,造成公用一个tip的功能丢失,现已修复。
bug描述:只显示第一个控件的信息,后面的控件正确与否都不理睬。


更多的升级记录,请点击这里


1、现场演示


http://www.yhuan.com/formvalidator/demo1.htm

 

2、jQuery pageValidator插件主要功能

 

  1. 支持所有类型客户端控件的校验
  2. 支持jQuery所有的选择器语法,只要控件有唯一ID和type属性
  3. 支持函数和正则表达式的扩展。提供扩展库formValidatorReg.js,你可以自由的添加、修改里面的内容。
  4. 支持2种校验模式。第一种:文字提示(showword模式);第二种:弹出窗口提示(showalert模式)
  5. 支持多个校验组。如果一个页面有多个提交按钮,分别做不同得提交,提交前要做不同的校验,所以你得用到校验组的功能。
  6. 支持4种状态的信息提示功能,可以灵活的控制4种状态是否显示。第一种:刚打开网页的时候进行提示;第二种:获得焦点的时候进行提示;第三种:失去焦点时,校验成功时候的提示;第四种:失去焦点时,校验失败的错误提示。
  7. 支持自动构建提示层。可以进行精确的定位。
  8. 支持自定义错误提示信息。
  9. 支持控件的字符长度、值范围、选择个数的控制。值范围支持数值型、字符型、日期型;选择的个数支持radio/checkbox/select三种控件
  10. 支持2个控件值的比较。目前可以比较字符串和数值型、日期型。
  11. 支持服务器端校验。
  12. 支持输入格式的校验。

 

3、jQuery formValidator插件 API帮助文档

帮助文档请点击这里 


4、下载API帮助、源码、示例


http://files.cnblogs.com/wzmaodong/formValidator3.3.rar

校验代码升级器


5、示例代码

<script type="text/javascript">
$(document).ready(function(){
 $.formValidator.initConfig({onError:function(){alert("校验没有通过,具体错误请看错误提示")}});
 $("#test1").formValidator({onshow:"请输入用户名",onfocus:"用户名至少6个字符,最多10个字符",oncorrect:"恭喜你,你输对了"}).InputValidator({min:6,max:10,onerror:"你输入的用户名非法,请确认"});

 $("#test2").formValidator({onshow:"请选择你的兴趣爱好(至少选择3个,最多选择5个)",onfocus:"你至少选择3个,最多选择5个",oncorrect:"恭喜你,你选对了"}).InputValidator({min:3,max:5,onerror:"你选的个数不对(至少选择3个,最多选择5个)"});

 $("#test3").formValidator({onshow:"请选择你的兴趣爱好(至少选一个)",onfocus:"你至少选择1个",oncorrect:"恭喜你,你选对了"}).InputValidator({min:1,onerror:"你选的个数不对"});

 $("#xueli").formValidator({onshow:"请选择你的学历",onfocus:"学历必须选择",oncorrect:"谢谢你的配合"}).SelectValidator({onerror: "你是不是忘记选择学历了!"});

 $("#password1").formValidator({onshow:"请输入密码",onfocus:"两次密码必须一致哦",oncorrect:"密码一致"}).InputValidator({min:1,onerror:"密码不能为空,请确认"}).CompareValidator({desID:"password2",operateor:"=",onerror:"2次密码不一致,请确认"});

 $("#nl").formValidator({onshow:"请输入的年龄(1-99岁之间)",onfocus:"只能输入1-99之间的数字哦",oncorrect:"恭喜你,你输对了"}).InputValidator({min:1,max:99,type:"value",onerror:"年龄必须在1-99之间,请确认"});

 $("#aiguo").formValidator({onshow:"爱国的人一定要选哦",onfocus:"你得认真思考哦",oncorrect:"不知道你爱不爱,反正你是选了"}).InputValidator({min:1,max:1,onerror:"难道你不爱国?你给我选!!!!"});

 $("#shouji").formValidator({empty:true,onshow:"请输入你的手机号码,可以为空哦",onfocus:"你要是输入了,必须输入正确",oncorrect:"谢谢你的合作",onempty:"你真的不想留手机号码啊?"}).InputValidator({min:11,max:11,onerror:"手机号码必须是11位的,请确认"}).RegexValidator({regexp:"^[1][0-9]{10}$",onerror:"你输入的手机格式不正确"});

 $("#lxdh").formValidator({empty:true,onshow:"请输入你的联系电话,可以为空哦",onfocus:"你要是输入了,必须输入正确,格式例如:0577-88069620",oncorrect:"谢谢你的合作",onempty:"你真的不想留联系电话了吗?"}).RegexValidator({regexp:"^[[0-9]{3}-|\[0-9]{4}-]?(\[0-9]{8}|[0-9]{7})?$",onerror:"你输入的联系电话格式不正确"});

 $("#ms").formValidator({onshow:"请输入你的描述",onfocus:"描述至少要输入10个汉字或20个字符",oncorrect:"恭喜你,你输对了"}).InputValidator({min:20,onerror:"你输入的描述长度不正确,请确认"});
});
</script>



6、特别说明

如果你在使用过程中碰到什么问题请给我留言,发现bug请不要自行修改,也请留言,达到完善插件的目的,真正服务每个程序开发人员 .
请保留插件的版权申明,谢谢

posted on 2008-01-11 11:12 猫冬 阅读(27435) 评论(696)  编辑 收藏 网摘

评论:
评论共7页: 上一页 1 2 3 4 5 6 7 
#601楼 2009-02-12 16:28 | heheweb[未注册用户]
插件在最新的jquery1.3.1中有一个问题,就是使用多选验证会出现错误,下面提示“例外被抛出且未接住”
  回复  引用    
#602楼 2009-02-16 00:20 | soky[未注册用户]
怎么验证输入价格,2.00这种
  回复  引用    
#603楼 2009-02-20 01:24 | 贺颖[未注册用户]
大牛,问你个问题。你其中 ajaxValidator这个方法有问题,不知道是什么错误,我是学写java的,他根本没有进到我定义的action里去判断,也就是活他的回调的data属性是空,所以没办法返回true好像包括你写的例子也是这样的,就算等于maodong一样的还是报错。
  回复  引用    
#604楼 2009-02-21 17:18 | loach[未注册用户]
你好朋友。上两周都忘记提醒你了。不知道 你的formValidator3.3 ,有没有已经再jquery1.3.1 上测试了
  回复  引用    
#605楼 2009-02-27 17:28 | 阿印[未注册用户]
不错,收藏了,呵呵
  回复  引用    
#606楼 2009-03-05 10:16 | 不见不散      
ajaxValidator目前好像只支持发送一个参数,想发送多个参数要怎么设置呢? 谢谢楼主提供这么棒的验证框架. 看了楼主提供的文档,明白了,跟jQuery.ajax一样...
  回复  引用  查看    
#607楼 2009-03-18 09:34 | hzfulin[未注册用户]
在ajaxValidator验证时默认将本控件加到URL后传到后端
如果想传多几个其它控件的值过去一起验证
怎么设

  回复  引用    
#608楼 2009-03-22 20:56 | lefis[未注册用户]
我用ajaxValidator做表单验证用户名的时候,不论正确与否 总是提示 “服务器没有返回数据,请重试” ,是不是根本就没有数据返回呢?

代码一浏览器端:
.ajaxValidator({
type : "get",
url : "regedit.php?job=check",
datatype : "json",
success : function(data){
if( data == "1" )
{
return true;
}
else
{
return false;
}
},
buttons: $("#button"),
error: function(){alert("服务器没有返回数据,请重试");},
onerror : "该用户名不可用,请更换用户名",
onwait : "校验中,请稍候..."
});

代码二服务器端:
if($_GET['job']=='check'){
$sql = "select user_id from cms_user where user_name='$user_name'";
$num = $db->myquery_num($sql);
if($num>0){
echo("0");
exit(0);
}else{
echo("1");
exit(0);
}

以上是主要代码,各位达人帮忙看看哪里有错

  回复  引用    
#609楼 2009-03-24 15:13 | guyanpiaoxue[未注册用户]
同样遇到在ajaxValidator验证时传多几个其它控件的值过去一起验证,无法获取值的问题,希望楼主给予帮助,谢谢!!
  回复  引用    
#610楼 2009-03-25 13:37 | Nickol[未注册用户]
问一下,判断字数,能不能不区分中英文啊
  回复  引用    
#611楼 2009-03-25 14:06 | manion[未注册用户]
请教一下!能不能实现点提交按钮时把整个表单的元素一起提交验证,根据唯一标示来做不同的验证 不用在页面为每个元素单独定义
  回复  引用    
#612楼 2009-03-25 14:48 | Nickol[未注册用户]
看到个问题,如果设置onshow为null或"",则tip被隐藏了,那么当验证时候,其他提示就看不见了
  回复  引用    
#613楼 2009-03-25 19:10 | zhyh[未注册用户]
我的问题与楼上一样,新版本 如果把 onshow 或 onfocus 设成 "" 或 null的话,刚才的错误验证就看不到了,我记得前几个版本是可以的!!!
  回复  引用    
#614楼[楼主] 2009-03-25 21:43 | 猫冬      
@guyanpiaoxue
ajaxValidator传递多个值的问题,我会尽量在新的版本里解决

  回复  引用  查看    
#615楼[楼主] 2009-03-25 21:44 | 猫冬      
--引用--------------------------------------------------
Nickol: 问一下,判断字数,能不能不区分中英文啊
--------------------------------------------------------
你好,判断数字的判断是通过正则表达式来实现的,你可以方便的扩展formvalidator_reg.js里的内容

  回复  引用  查看    
#616楼[楼主] 2009-03-25 21:47 | 猫冬      
--引用--------------------------------------------------
manion: 请教一下!能不能实现点提交按钮时把整个表单的元素一起提交验证,根据唯一标示来做不同的验证 不用在页面为每个元素单独定义
--------------------------------------------------------
这个插件是要实现js和html分离,我不知道你的说的是哪个意思?

  回复  引用  查看    
#617楼[楼主] 2009-03-25 22:27 | 猫冬      
--引用--------------------------------------------------
Nickol: 看到个问题,如果设置onshow为null或&quot;&quot;,则tip被隐藏了,那么当验证时候,其他提示就看不见了
--------------------------------------------------------
确实存在你说的情况,马上查一下,给你带来不便表示抱歉

  回复  引用  查看    
#618楼 2009-03-25 23:46 | zhyh[未注册用户]
期待猫大哥百忙之中将这个BUG修复一下,我最近的一个项目中就在使用这个插件
  回复  引用    
#619楼 2009-04-01 11:34 | 博览群书      
BUG报告

文件:formValidator.js
函数:ajaxValid()

complete : function(){
if(setting.buttons && setting.buttons.length > 0){
setting.buttons.attr({"disabled":false})};
setting.complete; //应改为setting.complete();
},

  回复  引用  查看    
#620楼 2009-04-01 16:59 | chyoqin[未注册用户]
<script type="text/javascript">
$(document).ready(function(){
$.formValidator.initConfig({onSuccess:sub(),onError:function(){alert("Check did not pass, the specific mistakes see error messages!"); }});
$("#b_name").formValidator({onshow:"Please enter name",onfocus:"Name at least 2, up to 30 char",oncorrect:"Congratulations, you lose the right"}).InputValidator({min:2,max:30,onerror:"Name length illegal, make sure"});


我想在输入用户名时验证一下这个用户名在user表时是否已存在,在$("#b_name")。。。时怎么调用一个checkuser()函数呢??

  回复  引用    
#621楼 2009-04-02 15:16 | 技术小菜鸟      
你好,我用你的JQuery验证插件验证Asp.net服务器端控件时如果用服务器端Button提交会发生错误

  回复  引用  查看    
#622楼 2009-04-03 14:26 | 启程      
ajaxvalidator,这个的问题确实不好搞,猫冬能不能做一个Demo是能够传递参数的,比如把一个固定值"option=reg",一个文本框值$("#txtLoginName").val() 给传递到服务器去验证的,类似这样的例子。感谢给我们提供了这么好个插件!
  回复  引用  查看    
#623楼 2009-04-03 14:35 | 启程      
客户端验证都可以通过失去焦点时验证,但有时候希望能够在onSuccess:function(){
这个事件里面再验证一下,但在这里验证,不知道如何写,如何提示错误?

  回复  引用  查看    
#624楼 2009-04-03 14:37 | 启程      
客户端验证都可以通过失去焦点时验证,但有时候希望能够在onSuccess:function(){
这个事件里面再验证一下,但在这里验证,不知道如何写,如何提示错误?
其实我是想,对于Ajax验证,有时候需要处理比较多东西,不需要每次失去焦点都验证一次,到最后,客户端验证完了,再一次性验证,那样效率会好点。

  回复  引用  查看    
#625楼 2009-04-09 15:56 | hanswang[未注册用户]
你好,这个验证插件挺好用的,谢谢
我使用过程中遇到两个问题
1.和jQuery的最新版本1.3.2一起使用校验多个复选框时报错,我把demo里的jQuery_last.js直接换成1.3.2就弹出错误了,但是项目里有其他jQuery应用,不好全部使用验证插件使用的版本
2.onshow等设置null时不提示的问题,我想只有在不符合要求时才出现警告,但是没找到实现的方法,楼上有人提了这个问题,请问作者解决了吗?

  回复  引用    
#626楼 2009-04-09 16:01 | hanswang[未注册用户]
你好,这个验证插件挺好用的,谢谢
我使用过程中遇到两个问题
1.和jQuery的最新版本1.3.2一起使用校验多个复选框时报错,我把demo里的jQuery_last.js直接换成1.3.2就弹出错误了,但是项目里有其他jQuery应用,不好全部使用验证插件使用的版本
2.onshow等设置null时不提示的问题,我想只有在不符合要求时才出现警告,但是没找到实现的方法,楼上有人提了这个问题,请问作者解决了吗?我觉得可以设置一个全局属性,类似风格的,如果设置成只有出错才提醒则formValidator()无参数初始化时就默认不出现提示了

  回复  引用    
#627楼 2009-04-16 15:04 | guest[未注册用户]
怎样清除$.formValidator.initConfig的初始化。
  回复  引用    
#628楼 2009-04-19 23:58 | xmc[未注册用户]
$("#tel").formValidator({telTip:"teltip",empty:true,onshow:"请输入你的联系电话,可以为空!",onfocus:"格式例如:0754-88888888",oncorrect:"谢谢你的合作"}).regexValidator({regexp:"^(0?[1-9]\d{1,2}-?)?(0[1-9]\d{1,2}-?)?[1-9]\d{6,7}$",onerror:"你输入的联系电话格式不正确"});

总是显示:你输入的联系电话格式不正确
其中正则没有错
问题会在哪

  回复  引用    
#629楼 2009-04-23 09:02 | 不好用[未注册用户]
我怎么用的。指定了form1 的 action=aa.asp。不管验证通过没通过。点安按钮都提交到aa.asp


  回复  引用    
#630楼 2009-04-25 11:23 | 龙十二[未注册用户]
请教几个初级的问题,希望大大能够帮忙解答下。
var jQuery_formValidator_initConfig;
(function($) {
})(jQuery);
这种写法是什么意思?
还有代码里面有句$.extend(true,setting, cs)是什么意思,我看jquery里面的extend好像参数是一个吧

  回复  引用    
#631楼 2009-04-26 19:23 | adfadf[未注册用户]
$.extend(true,setting,cs)跟$.extend({},setting,cs)有什么区别吗
  回复  引用    
#632楼 2009-05-06 10:33 | qq:15932551[未注册用户]
a.htm
里面有个frame src=b.htm(一些表单元素)
尾部是一排按钮,单击按钮时如何实现校验?
<input type='button' value='save' onclick="test()">
<script>
function test(){
这里得到校验是否通过,如果未通过则提示错误信息
通过则执行下面代码
}
</script>

  回复  引用    
#633楼 2009-05-06 14:22 | 且行且思      


已经测试过,效果不错
谢谢楼主开源。。。


有一个紧急的小细节请教。
表单内有二服务器按钮,
提交和返回

用户点击提交时,这些验证才起作用。
点击返回则不需做验证,

该如何配置呢,
在线等待中。。

  回复  引用  查看    
#634楼 2009-05-06 15:29 | 且行且思      


郁闷。。。
password2改后
用户若再改一下password1 ,仍提示验证合法/

这二个密码框可否做一个往返联动检测??

  回复  引用  查看    
#635楼 2009-05-10 11:27 | 大喇嘛[未注册用户]
当使用ajaxform插件异步提交表达的时候,按sumit无法阻止表单的提交,也就是不通过任何验证表单任然会提交
  回复  引用    
#636楼 2009-05-10 23:51 | stone111111111111111111111[未注册用户]
js代码写的很烂
  回复  引用    
#637楼 2009-05-13 00:59 | Stone111111[未注册用户]
花了点时间,重写了博主的验证控件,有兴趣的可以下载看看
http://cid-b4a215024df321e2.spaces.live.com/default.aspx?wa=wsignin1.0&sa=849015682

  回复  引用    
#638楼 2009-05-13 13:55 | adfadf[未注册用户]
错误: jQuery is not defined
源文件:file:///D:/%E5%B7%A5%E4%BD%9C/work/formValidator.js
行:988

  回复  引用    
#639楼 2009-05-14 18:44 | mark35[未注册用户]
@lefis

你把下面这一行删除就行了。
datatype : "json",

这个参数设定了返回值为JSON格式,但你服务端输出(返回)的却不是JSON格式。

  回复  引用    
#640楼 2009-05-14 19:04 | mark35[未注册用户]
--引用--------------------------------------------------
启程: 客户端验证都可以通过失去焦点时验证,但有时候希望能够在onSuccess:function(){
这个事件里面再验证一下,但在这里验证,不知道如何写,如何提示错误?
--------------------------------------------------------
如果是<form>表单直接用 type='submit' 按钮提交,那么可以在<form 标签中添加 onsubmit=”$.formValidator.pageIsValid('1')“ 来实现; 如果是在JS函数中模拟提交则可以这样:
function submit_formxxx() {
//先校检
if(!$.formValidator.pageIsValid('1')) {
return false;
}

//继续其他工作
......
}

  回复  引用    
#641楼 2009-05-14 19:05 | mark35[未注册用户]
@chyoqin #615
这个需求得用ajaxValidator函数来实现

  回复  引用    
#642楼 2009-05-14 19:06 | 且行且思      

如何同时提交二个控件的值至服务器端页呢?

  回复  引用  查看    
#643楼 2009-05-14 20:50 | mark35[未注册用户]
--引用--------------------------------------------------
启程: ajaxvalidator,这个的问题确实不好搞,猫冬能不能做一个Demo是能够传递参数的,比如把一个固定值&quot;option=reg&quot;,一个文本框值$(&quot;#txtLoginName&quot;).val() 给传递到服务器去验证的,类似这样的例子。感谢给我们提供了这么好个插件!
--------------------------------------------------------
这样看是否行:
ajaxValidator({
type :"post",
beforesend: function() {
var v = $('#u_name').val();
var str = 'key='+v;
this.data = str;
//alert(this.data = str);
},
......

  回复  引用    
#644楼 2009-05-14 20:59 | mark35[未注册用户]
如果 beforesend方式可行,那么就可以用jquery的serialize()方法来传递整个表单(不过这样一来密码也是明文传输了,不安全。当然可以在序列化之前另作处理)。
  回复  引用    
#645楼 2009-05-14 21:12 | 且行且思      
beforesend: function() {
var v = $('#u_name').val();
var str = 'key='+v;
this.data = str;
//alert(this.data = str);
},

++++++++++++++++++++++++++++
这样服务器端可以捕获到,如何把它做为一个变量加到data或url后面呢??

  回复  引用  查看    
#646楼 2009-05-15 10:43 | mark35[未注册用户]
@且行且思
#640

还是不行,这样可以改变 data的值,但是并非在本次ajax提交中生效而是会在下次提交生效。

  回复  引用    
#647楼 2009-05-15 16:00 | mark35[未注册用户]
@且行且思
找到解决办法,修改源程序

1、在#418行开始添加如下代码:
//add by waiting
var pData = setting.pre_proc();
/*判断规则:若data和附加pre_proc()返回值都为字符串则直接连接
否则都转化为obj进行合并.
要确保ajaxValidator.settings.processdata == true!!*/
if ('string' == typeof(setting.data) && 'string' == typeof(pData)) {
if (0 == pData.indexOf('&')) { //前导为&
setting.data += pData;
} else {
setting.data += '&' + pData;
}
} else {
if ('object' != typeof(setting.data)) {
setting.data = setting.proc_pdata(setting.data);
}
if ('object' != typeof(pData)) {
pData = setting.proc_pdata(pData);
}
if (false != pData) {
$.extend(setting.data, pData);
}
//alert(setting.data.toSource());
}
pData = null; //end of add

--------------------
2、在#902行插入如下代码:
//add by waiting
pre_proc: function(){},
proc_pdata : function(data) {

if ('string' == typeof (data)) {
var arr = data.split('&');
var str = ''; //must ''
for (var x in arr) {
var arr_tmp = arr[x].split('=',2);
var k = arr_tmp[0] ,value = arr_tmp[1];
str += ',"'+ k + '":"' + value + '"';
}
if (0 == str.length) {
return false;
}
str = '{' + str.slice(1) + '}';
var res = eval( '(' + str + ')' );
return res;
}

},

----------------

3、修改 #898 行 processdata : false, 值为true.

  回复  引用    
#648楼 2009-05-15 16:31 | mark35[未注册用户]
上面是修改 formValidator.js 源程序。

使用时这样写代码:

.ajaxValidator({
type :"post",
url :"admin.php?ajax=3",
pre_proc: function () {
var v = $('#form1').serialize();
//var v = 'key1=v1&key2=v2&key3=v3';
//var v = {'a1':11,'a2':22}
return v;

},
//data: {option:'reg',aa:'9', 'bb':11},
data : 'optin=reg&a1=12',
.....
}

添加了一个自定义函数 pre_proc(),用户需要附加提交的数据用 return 返回。返回的类型可以是标准提交字符串( 'key1=v1&key2=v2' 的格式,或者直接用 $.serialize()方法序列化表单),也可以是json字符串格式。
data参数也可以是字符串和json对象方式。
测试成功。

  回复  引用    
#649楼 2009-05-15 16:35 | mark35[未注册用户]
注意,要附加提交的数据在pre_proc()中必须用 return来返回,否则是无效的。
如果有人要mod文件,吱一声~

  回复  引用    
#650楼 2009-05-15 17:21 | mark35[未注册用户]
--引用--------------------------------------------------
大喇嘛: 当使用ajaxform插件异步提交表达的时候,按sumit无法阻止表单的提交,也就是不通过任何验证表单任然会提交
--------------------------------------------------------
<form onsubmit="return $.formValidator.pageIsValid('1')">

  回复  引用    
#651楼 2009-05-15 23:21 | 且行且思      


好,谢谢mark35大哥,
测试一下。

  回复  引用  查看    
#652楼 2009-05-15 23:56 | 且行且思      
@mark35


31350709@qq.com

mark35大哥,测试未成功,能否把你的js及domo文件发到我邮箱下?
谢谢。

  回复  引用  查看    
#653楼 2009-05-16 00:03 | 且行且思      
.ajaxValidator({
type : "post",
url : "Default.aspx?clientid=password1",
pre_proc: function () {
var v = $('#form1').serialize();
return v;
},
data : "optin=reg&a1=12&sdf='"+$("#password1").val() +"'",
datatype : "json",
success : function(data){
if( data == "1" )
{
return true;
}
else
{
return false;
}
},
buttons: $("#button"),
error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
onerror : "该用户名不可用,请更换用户名",
onwait : "正在对用户名进行合法性校验,请稍候..."
});



错在哪里??

  回复  引用  查看    
#654楼 2009-05-16 03:06 | mark35[未注册用户]
1、 "data"参数还是不能有运算表达式的!只能是字符串+变量或者 json格式。比如:
data: 'option=reg&id=' + uid; //注意这儿的 uid变量需要是全局变量并且是已经赋值的,不能是on-line运算出的。

2、datatype : "json", <----你这儿制定了服务器返回信息格式是JSON,而下面 “if( data == "1" ) ” 明显的data数据格式不是JSON而是txt或者html格式。
你要么删除datatype 参数,要么调整服务端返回信息的格式。

  回复  引用    
#655楼 2009-05-16 03:09 | mark35[未注册用户]
注意 datatype : 这个参数指的是“服务器返回到客户端信息的类型”,而不是ajax发送(到服务器) 信息的类型! 并且也和 data参数没关系。
  回复  引用    
#656楼 2009-05-16 03:12 | mark35[未注册用户]
@且行且思 #647楼
--------------------
抱歉代码都在公司,需要的话周一发给你。我看你用的是ASP,我这儿服务端是PHP估计你用不上(其实用firefox+firebug,然后在服务端直接 print_r($_REQUEST); 就很清楚了)

  回复  引用    
#657楼 2009-05-16 03:21 | mark35[未注册用户]
再补充一下吧,可使用格式如下
var uid=333; //global

xxxx.ajaxValidator({
type :"post",
url :"admin.php?ajax=3",
pre_proc: function () {
var v = $('#form1').serialize();
//var v = 'key1=v1&key2=' + $('#someid').val();
//var v = 'key1=v1&key2=v2&key3=v3';
//var v = {'a1':11, 'a2':22, 'a3':'some words'}
return v;

},

data : 'optin=reg&a1=12',
//data: 'option=reg&a1=12&id=' + uid;
//data: {option:'reg' ,aa:'9', 'bb':11, 'cc':'some thing'},
.....
}


注释掉的都是可用表达式,没列出的都是不支持的。比如
data : 'option=reg&u_name=' + $('#u_name').val(); <----不行的!!!

  回复  引用    
#658楼 2009-05-16 13:20 | 且行且思      
@mark35


谢谢,不错的思路,
我用的asp.net

还有一个问题,
//var v = 'key1=v1&key2=' + $('#someid').val();

若不断地返回,那么该表达式的值叠加了,如下:
clientid=account&account=33333&optin=reg&key2=11&key2=22&ALL_HTTP=HTTP_CACHE_CONTROL

表达式key2=的名称及值,所输出的记录,如何每次返回后自动清除??

  回复  引用  查看    
#659楼 2009-05-18 14:00 | mark35[未注册用户]
@且行且思
赋值的确是重复叠加的,不过我在添加的那部分已经做了合并处理,最后在提交(get/post)的时候只会输出(最后一次)正确的值对的。

这个代码是应急用,还有问题(比如get方式,没有任何附加提交,url最后会附上一个不成对的undedifined)。
有空再看看能否改进一下。当然如果博主能出来就更好了~

  回复  引用    
#660楼 2009-05-18 14:56 | mark35[未注册用户]

@且行且思
找到解决办法了:合并data/pre_proc()两个值时不修改data而是修改后者,最后传递给$.ajax的不用 setting.data而是pData。 收信~

  回复  引用    
#661楼 2009-05-18 15:09 | mark35[未注册用户]
详细修改 formValidator.js:
1、19行开始插入

//add by waiting 处理data/pre_proc()返回值为jsong格式
proc_pdata : function(data) {
if ('string' == typeof (data)) {
var arr = data.split('&');
var str = ''; //must ''
for (var x in arr) {
var arr_tmp = arr[x].split('=',2);
str += ',"'+ arr_tmp[0] + '":"' + arr_tmp[1] + '"';
}
str = '{' + str.slice(1) + '}';
var res = eval( '(' + str + ')' );
return res;
}
},

-----------------------------------------------------------
2、418行开始插入


//add by waiting
var pData = setting.pre_proc();
/*判断规则:若data和附加pre_proc()返回值都为字符串则直接连接
否则都转化为obj进行合并.
要确保ajaxValidator.settings.processdata == true!!*/
if (setting.data && pData) { //两种方式皆有
if ('string' == typeof(setting.data) && 'string' == typeof(pData)) {
if (0 == pData.indexOf('&')) { //前导为&
pData = setting.data + pData;
} else {
pData = setting.data + '&' + pData;
}
} else {
if ('object' != typeof(setting.data)) {
setting.data = $.formValidator.proc_pdata(setting.data);
}
if ('object' != typeof(pData)) {
pData = $.formValidator.proc_pdata(pData);
}
if (false != pData) {
var empty = {};
pData = $.extend(empty, setting.data, pData);
}
//alert(setting.data.toSource());
}

} else if (setting.data) { //只有data参数
pData = setting.data;
}//end of add

---------------------------------
3、437行覆盖成
data : pData, //modify by waiting

------------------------------------
4、902行后插入
pre_proc: function(){},//add by waiting


调用方式见#652楼

  回复  引用    
#662楼 2009-05-18 18:04 | 且行且思      
@mark35

非常感谢。基本上解决问题了。
历害。

  回复  引用  查看    
#663楼 2009-05-18 18:40 | mark35[未注册用户]
补充一点:
如果data和pre_proc()中有相同的值名,则提交时后者的值会覆盖前者的。

例:
data : 'option=reg&client=33',
pre_proc : function() {
var v = {'key1': 11, 'client':35};
//var v = 'key1=11&client=35';
return v;
}
提交的值对将会是 {'option':reg, 'key1':11, 'client':35} 或者 'option=reg&key1=11&client=35' .

  回复  引用    
#664楼 2009-05-19 10:19 | mark35[未注册用户]
--引用--------------------------------------------------
且行且思:

郁闷。。。
password2改后
用户若再改一下password1 ,仍提示验证合法/

这二个密码框可否做一个往返联动检测??

--------------------------------------------------------
你JS里面只给 password2挂了compareValidator函数,而passwords1没挂吧。两个都挂上就可以实现往返联动(只不过这样当你先填入pass1离开后会马上显示“两次密码必须一致”而不是“密码格式合法”)

  回复  引用    
#665楼 2009-05-21 16:38 | 咸鱼翻身      
感谢
好好用是对你最好的感谢。

  回复  引用  查看    
#666楼 2009-05-26 17:25 | 好孩子[未注册用户]


郁闷
若页面载入时,当前文本值不变的情况下,点击按钮,
post不到验证页,怎么办呀??

  回复  引用    
#667楼 2009-05-29 11:59 | wenzhu
时间的验证好像有点问题, 当时间没有通过的时候,提交时,提交按钮的值就变成了时间,时间插件就自动跑出来了
  回复  引用    
#668楼 2009-05-29 15:57 | hsxiaoma211[未注册用户]
你好!
使用你的表单验证工具和jquery.form联合使用的时候出现问题,不管验证有没有通过,表单都会提交.

我使用了两种方法,1是按说明写的,2是将验证代码放在一个function checkForm()里,然后使用ajaxSumbit({beforeSubmit:checkForm})

以上都不起作用,不知何故?

  回复  引用    
#669楼 2009-05-29 20:03 | mark35[未注册用户]
@hsxiaoma211
你可以在function checkForm()中ajaxSumbit({beforeSubmit:checkForm}) 之前加上这样一条:

if (!$.formValidator.pageIsValid('1')) {return false;}

  回复  引用    
#670楼 2009-05-30 17:06 | mark35[未注册用户]
@hsxiaoma211
看了源码,发现插件会自动给表单绑定onsubmit事件(return $.formValidator.pageIsValid("1") ),如果照#664楼写法,则会产生两次验证过程。 你可以试试把你表单的提交按钮type从submit改成button。 不过当ajax验证期间就无法自动disabled掉提交按钮了。

或者你不使用jquery.form插件,直接用页面自己的提交或者自己写ajax提交代码。对于后者其实很简单,只需要用jquery的serialize()方法把表单序列化然后作为参数使用jquery的 $.post()方法提交即可。

建议猫冬把内部绑定sumbit方法作为一个init参数来绑定,这样用户在初始化表单时就可以选择是否使用自动绑定onsubmit功能以便自己使用其他方式提交。不然假如我使用自定义ajax去提交,则需要额外使用(if (!return $.formValidator.pageIsValid("1")) return false;)命令来单独判断验证结果,但这样产生的结果是当submit按钮提交时系统会做两次验证,无法通过验证输入框的alert提示会重复弹出两次。 如果把onsumit绑定作为一个初始化参数,那么我就可以使用类似
$.formValidator.initConfig({
fomrid: 'fomr1',
submit: ''
//submit : function() {do ....}
});
这样方式来不给表单绑定onsubmit方法or绑定自定义方法。

  回复  引用    
#671楼 2009-05-30 17:15 | mark35[未注册用户]
------------------------>>>>>>>
你可以在function checkForm()中ajaxSumbit({beforeSubmit:checkForm}) 之前加上这样一条:

if (!$.formValidator.pageIsValid('1')) {return false;}
----------------------------<<<<<<<<<

#664楼表述不正确,更正:
你可以在function checkForm()中加上这样一条:
if (!$.formValidator.pageIsValid('1')) {
return false;
} else {
return null;
}

  回复  引用    
#672楼 2009-05-30 18:53 | mark35[未注册用户]
或者简单的给$.formValidator.initConfig加个开关:

$.formValidator.initConfig({
...
bindsubmit: true //defalt
//bindsubmit: false

})
默认true自动绑定onsubmit事件,用户可以关闭。
这样就可以解决两次验证的情况:
1、自己给表单绑定onsubmit方法,比如 onsubmit='my_submit()'
2、在my_submit()中添加这样的代码
if (! $.formValidator.pageIsValid("1") ) {
return false;
} else {
this.submit();
//或者其他提交方法,比如
/*
var pdata = $('#formid').serialize();
$.post('server.php', pdata, function(r) {
if (r == 1) {alert('提交成功');}
});
*/
}

  回复  引用    
#673楼 2009-06-01 15:12 | laurel[未注册用户]
我有问题请教!
第一: 如果我要判断一个表单,如果为空刚不用判断是否有效.如果非空,判断其是否符合格式.

第二:手机号码的正则不对了.
号段不够全.

  回复  引用    
#674楼 2009-06-01 17:05 | 杨鑫奇      
不错谢谢分享。。下下来测试下
  回复  引用  查看    
#675楼 2009-06-02 11:20 | test56[未注册用户]
有个问题,修改用户信息时,修改后,直接提交 会报修改后的信息已存在 ?再线等待
  回复  引用    
#676楼 2009-06-03 10:40 | mark35[未注册用户]
@test56
这是因为直接提交时(插件)并不作ajax验证。你可以先让(需要作ajax验证的)用户信息输入框获得焦点,然后鼠标点击其他地方(不能是提交按钮)让其失焦(blur)验证。然后再提交。

之所以是这样的设计,应该是暂时无法解决异步失焦验证与post提交事件判断与处理(还没等异步验证返回信息就已经提交出表单)。这个我觉得可以使用JS事件机制来解决。

  回复  引用    
#677楼 2009-06-04 14:30 | jquery~[未注册用户]
你好:

.ajaxValidator({
type:"get",
url:"/user/user_ajaxCheckUsernameIsExist.action",
data:"user.username="+$("#username").val();
});

这里用data:想多传几个参数也传不过去,得到的user.username总是空字符串,希望在新版本中尽快解决,项目中用到了,这点不解决,还是很大瑕疵。



  回复  引用    
#678楼 2009-06-04 16:59 | dododragon[未注册用户]
@mark35

回复666楼

按照您这样的写法,还是不行。能不能帮我看看我的代码

function transfer_order()
{
var options =
{
target: "#order_group",
url: "/template/order.aspx",
type: "POST",
beforeSubmit: check_order()
};
if (!jQuery.formValidator.pageIsValid("1")) {return false;}
jQuery("#order").ajaxForm(options);
jQuery("#order_info").text("信息核对");
}

function check_order()
{

jQuery.formValidator.initConfig
({
formid:"order",
onerror:function(msg){alert(msg);return false;}
})

jQuery("#user_name").formValidator({onshow:"请输入您的姓名",onfocus:"姓名至少2个字,最多5个字",oncorrect:"填写正确"}).inputValidator({min:4,max:10,onerror:"你填写不正确"}).regexValidator({regexp:"name",datatype:"enum",onerror:"姓名格式不正确"})
jQuery("#user_mobile").formValidator({onshow:"请输入您的手机号码",onfocus:"请正确填写手机号码",oncorrect:"填写正确"}).inputValidator({min:11,max:11,onerror:"号码必须是11位的"}).regexValidator({regexp:"mobile",datatype:"enum",onerror:"您输入的手机号有错误"})
jQuery("#user_address").formValidator({onshow:"请输入您的联系地址",onfocus:"联系地址至少10个字",oncorrect:"填写正确"}).inputValidator({min:20,onerror:"你输入的联系地址太短了吧"});
jQuery("#postalcode").formValidator({onshow:"请您输入邮政编码",onfocus:"请正确填写邮政编码",oncorrect:"填写正确"}).inputValidator({min:6,max:6,onerror:"邮政编码应该是6位的"}).regexValidator({regexp:"zipcode",datatype:"enum",onerror:"您输入的邮政编码有错误"})
jQuery("#recipients").formValidator({onshow:"请输入收件人姓名",onfocus:"姓名至少2个字,最多5个字",oncorrect:"填写正确"}).inputValidator({min:4,max:10,onerror:"你填写不正确"}).regexValidator({regexp:"name",datatype:"enum",onerror:"姓名格式不正确"})
jQuery("#amount").formValidator({onshow:"请您填写订阅的套数",onfocus:"最少订阅1套",oncorrect:"填写正确"}).inputValidator({min:1,max:99,onerror:"你填写的不正确"}).regexValidator({regexp:"intege",datatype:"enum",onerror:"填写格式不正确"})
}

  回复  引用    
#679楼 2009-06-07 16:50 | mark35[未注册用户]
@dododragon
你的写法完全错了,像jQuery.formValidator.initConfig , jQuery("#user_name").formValidator(....) 这些代码是在页面加载时就“初始化”而不是在beforeSubmit时去“调用”的。

你这样看看:

<script type="text/javascript">

function transfer_order(){
var options = {
target: "#order_group",
url: "/template/order.aspx",
type: "POST",
beforeSubmit: check_order()
};
jQuery("#order").ajaxForm(options);
jQuery("#order_info").text("信息核对");
}

function check_order(){
if (!jQuery.formValidator.pageIsValid("1")) {
return false;
} else {
return true;
}
}

function formvalidate_init() {
jQuery.formValidator.initConfig({
formid:"order",
onerror:function(msg){alert(msg);return false;},
onsuccess : function() { return true; }
});

jQuery("#user_name").formValidator({onshow:"请输入您的姓名",onfocus:"姓名至少2个字,最多 5个字",oncorrect:"填写正确"}).inputValidator({min:4,max:10,onerror:"你填写不正确"}).regexValidator({regexp:"name",datatype:"enum",onerror:"姓名格式不正确"})
jQuery("#user_mobile").formValidator({onshow:"请输入您的手机号码",onfocus:"请正确填写手机号码",oncorrect:"填写正确"}).inputValidator({min:11,max:11,onerror:"号码必须是11位的"}).regexValidator({regexp:"mobile",datatype:"enum",onerror:"您输入的手机号有错误"})
jQuery("#user_address").formValidator({onshow:"请输入您的联系地址",onfocus:"联系地址至少10个字",oncorrect:"填写正确"}).inputValidator({min:20,onerror:"你输入的联系地址太短了吧"});
jQuery("#postalcode").formValidator({onshow:"请您输入邮政编码",onfocus:"请正确填写邮政编码",oncorrect:"填写正确"}).inputValidator({min:6,max:6,onerror:"邮政编码应该是6位的"}).regexValidator({regexp:"zipcode",datatype:"enum",onerror:"您输入的邮政编码有错误"})
jQuery("#recipients").formValidator({onshow:"请输入收件人姓名",onfocus:"姓名至少2个字,最多5个字",oncorrect:"填写正确"}).inputValidator({min:4,max:10,onerror:"你填写不正确"}).regexValidator({regexp:"name",datatype:"enum",onerror:"姓名格式不正确"})
jQuery("#amount").formValidator({onshow:"请您填写订阅的套数",onfocus:"最少订阅1 套",oncorrect:"填写正确"}).inputValidator({min:1,max:99,onerror:"你填写的不正确"}).regexValidator({regexp:"intege",datatype:"enum",onerror:"填写格式不正确"})

}

</script>

<script type="text/javascript">
$(document).ready(function(){
formvalidate_init();
});
</script>

  回复  引用    
#680楼 2009-06-08 10:10 | xiaoxiong[未注册用户]
$("#tel,#shouji").formValidator({tipid:"telTip",onshow:" ",onfocus:"联系电话或手机请至少填写一个!",oncorrect:"填写正确!"}).FunctionValidator({fun:allEmpty});
function allEmpty(val,elem)
{
return ($("#tel").val()=="" && $("#tel").val()=="")?'联系电话或手机请至少填写一个!':true;
}

这样写网页怎么提示错误呢?
网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0(Compatible Mozilla/4.0(Compatible-EmbeddedWB 14.59 http://bsalsa.com/ EmbeddedWB- 14.59 from: http://bsalsa.com/ ; CIBA; InfoPath.2)
时间戳: Mon, 8 Jun 2009 02:08:58 UTC


消息: 对象不支持此属性或方法
行: 21
字符: 2
代码: 0
URI: http://localhost/bx/index.html

  回复  引用    
#681楼 2009-06-08 15:12 | ddd[未注册用户]
好象用在asp.net页面上有问题,如果一个页面有多个服务器控件BUTTON(不是HTML的INPUT),始终点击每个BUTTON都会进行验证,启用分组验证后一个按钮还会验证两次。
因为一个页面不可能仅有一个BUTTON的,而通常验证只需要提交时才用到,每页都加分组也很麻烦,请问这个如何处理?

  回复  引用    
#682楼 2009-06-09 08:08 | dododragon[未注册用户]
@mark35
感谢你,按照你的写法,没有问题了。

  回复  引用    
#683楼 2009-06-09 09:42 | ddd[未注册用户]
如果按钮放在UpdatePanel里面只能验证一次,第二次提交时提示setting.0为空
  回复  引用    
#684楼 2009-06-10 16:30 | amoszw[未注册用户]
请教,ASP.NET的asp:LinkButton作为提交按钮,在表单校验不通过时,如何不让提交按钮执行后台代码(提交保存事件)?
  回复  引用    
#685楼 2009-06-11 09:40 | mark35[未注册用户]
@amoszw
如果是标准提交按钮 <input type='submit' ..... /> 那么当验证不通过不会提交。如果是其他类型按钮(比如 <input type='button' ... 或者 <button ..)那么得自己判断验证返回值,如果返回为false 则阻止提交流程。

  回复  引用    
#686楼 2009-06-11 15:30 | amoszw[未注册用户]
@mark35
非常感谢!!

解决方法是
function checkForm() {
if (!$.formValidator.pageIsValid('1')) {
return false;
} else {
return null;
}
}


<asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="javascript:return checkForm();" onclick="LinkButton1_Click" CausesValidation="true">LinkButton提交</asp:LinkButton>


另还有其他问题,就是:

--引用--------------------------------------------------
wenzhu: 时间的验证好像有点问题, 当时间没有通过的时候,提交时,提交按钮的值就变成了时间,时间插件就自动跑出来了
--------------------------------------------------------

我也发现同样的问题,我用的版本是V3.3,用asp:LinkButton作为提交按钮,还有就是日期不能验证其在min: "1900-01-01", max: "2000-01-01"之间
如:
$("#csny").focus(function() { WdatePicker({ skin: 'whyGreen', oncleared: function() { $(this).blur(); }, onpicked: function() { $(this).blur(); } }) })
.formValidator({onshow: "请输入的出生日期", onfocus: "请输入的出生日期,不能全部是0哦", oncorrect: "你输入的日期合法" })
.inputValidator({ min: "1900-01-01", max: "2000-01-01", type: "date", onerror: "日期必须在\"1900-01-01\"和\"2000-01-01\"之间" });

  回复  引用    
#687楼 2009-06-13 08:24 | 大鸟渣[未注册用户]
老大 怎么获取脚本啊 我点获取脚本 复制在TXT文件上 为空白 请及时联系我 EMAIL
  回复  引用    
#688楼 2009-06-16 20:59 | mengqingyu[未注册用户]
发现个bug 如果用这个插件的ajax验证 当他访问服务器端的时候 这个表单的验证码会丢失 如果不用插件的ajax验证码会存在在session里但是只要用了一次 session里的验证码就丢了 而且我试过在第一次ajax请求时候取得session一样是null

  回复  引用    
#689楼 2009-06-18 20:36 | 盒子盒子
楼主您好!有个问题请您帮忙!我使用下面的代码想实现AJAX的动态验证用户是否存在,可以实现。但同相同的用户不可以被验证多次。我应该怎么修改AJAX的内容呀!谢谢!
$(document).ready(function(){
alert("11111");
$.formValidator.initConfig({onError:function(msg){alert(msg)}});
$("#username").formValidator({
onshow:"请输入用户名",onfocus:"用户名为6至16个字符",oncorrect:"该用户名可以使用"
}).InputValidator({min:6,max:16,onerror:"用户名长度有误"
}).RegexValidator({
regexp:"username",datatype:"enum",onerror:"用户名格式不正确"
}).AjaxValidator({
type : "get",
url : "student/operate.do",
data: "op=checkReg&ram=" + Math.random(),
success : function(data){
if( data == 1 )
{
return true;
}
else
{
return false;
}
},
buttons: $("#regButton"),
error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
onerror : "该用户名已被使用",
onwait : "正在对用户名进行合法性校验,请稍候..."
}).DefaultPassed();
});

  回复  引用    
#690楼 2009-06-18 20:55 | 盒子盒子
例如:

首先将输入用户名:aaaaaa将光标移到密码位置,会提示“该用户名可以使用”。然后将光标移动到用户名输入框会提示“用户名为6至16个字符”,再将光标移动到密码位置还是提示“用户名为6至16个字符”。我想实现的是当输入用户名后每当光标移动到用户名出都会调用ajax中url 的方法。我该如何修改上面的代码呢!

谢谢

  回复  引用    
#691楼 2009-06-18 21:03 | 盒子盒子
请问调用AjaxValidator({
type : "get",
url : "student/operate.do",
data: "op=checkReg&ram=" + Math.random(),
success : function(data){
if( data == 1 )
{
return true;
}
else
{
return false;
}
是chang事件,还是focus或blur事件。

  回复  引用    
#692楼 2009-06-19 10:09 | kanaun[未注册用户]
我用验证框架和表单提交框架结合起来,添加成功后表单清空,但是点添加还是可以添加验证没有使用,请问怎么办?
  回复  引用    
#693楼 2009-06-19 16:36 | mark35[未注册用户]
@盒子盒子
默认是blur。如果是下拉菜单则为onchange

  回复  引用    
#694楼 2009-06-29 13:32 | rad
和ajaxForm插件有冲突?
$('#formModal').ajaxForm({target: 'targetid'});
$.formValidator.initConfig({ formid: 'formModal' });

同时绑定form的话就有冲突了 验证不起作用了
怎么解决?

  回复  引用    
#695楼 2009-06-29 14:08 | rad
哦 ajaxForm有个beforeSubmit属性
加个验证就可以了

  回复  引用    
#696楼 2009-07-03 10:32 | RTTA[未注册用户]
猫兄,我验证的页面使用的ajax提交,但是页面提交过一次后,页面元素不初始化,怎么才能初始化页面元素呢,不然验证就不起作用了
  回复  引用    
#697楼 2009-07-03 16:41 | 特斯太
AjaxValidator的后面跟着.DefaultPassed()时,第一次打开页面,对文本框的空值不验证。请猫兄指点一下
  回复  引用    
评论共7页: 上一页 1 2 3 4 5 6 7 



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1034901




相关文章:

相关链接: