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

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 });
