jquery validate验证插件,在ajax提交方式下的验证

正常的表单都是使用submit按钮来提交,jquery  validate插件可以方便的做表单验证。

做一个发送短信的功能,向目标表插入多条记录,界面采用ajax来提交表单,等待效果直接用ext的遮罩了。

但是如何验证却碰到问题。

解决方式很简单,表单跟正常表单一样,validate的submitHandler,invalidHandler这2个方法都需要覆盖,都 return false;这样表单就不会在点击按钮的时候提交了,表单验证跟正常验证起作用。submitHandler在return 之前写上我们的表单处理代码就ok了。

代码如下,可以忽略ext相关代码。

 1 //表单验证
 2     $("#query").validate({
 3         onkeyup  : false,
 4         onclick  : false,
 5         onfocusout : false,
 6             rules : {
 7                 msg : {
 8                     required    : true,
 9                     maxlength    : 10
10                 } 
11             },
12             messages:{
13                 msg:{
14                     required    : ‘请输入短信内容!‘,
15                     maxlength    : ‘长度超过10!‘
16                 } 
17             },
18             showErrors : function(errorMap, errorList) {
19                 var msg = "";   
20                 $.each(errorList, function(i,v){   
21                   msg += (v.message+"\r\n");   
22                 });   
23                 if(msg!="")
24                 Ext.Msg.alert(‘表单‘,msg + fix);
25             },
26             invalidHandler : function(){
27                 return false;
28             },
29             submitHandler : function(){
30                 //表单的处理
31                 Ext.Msg.confirm("确认", "是否确认发送?" + fix, function(button,text){   
32                    if(button == ‘yes‘){
33                            loadMarsk.show();
34                            $.ajax({
35                                url:‘<%=basePath %>promotionAction.do?method=group‘,
36                                dataType:‘json‘,
37                                type:‘post‘,
38                                data:$(‘#query‘).serialize(),
39                                error:function(){
40                                    Ext.Msg.alert(‘错误‘,‘请求错误!‘ + fix);
41                                    loadMarsk.hide();
42                                },
43                                success:function(data){
44                                    Ext.Msg.alert(‘成功‘,data.msg + fix);
45                                    loadMarsk.hide();
46                                }
47                            })
48                    }
49                 } );   //confirm
50                 return false;//阻止表单提交
51             }
52         });

关键在于:validate的submitHandler,invalidHandler这2个方法都需要覆盖,都 return false;

转自:http://www.cnblogs.com/longterm/archive/2012/05/18/2507594.html

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。