大家好,我这两天在调试一个Extjs form提交的时候,碰到了奇怪的问题,源代码如下:
Ext.onReady(function(){
var form = new Ext.form.FormPanel({
title:"用户注册",
width:600,
autoHeight:true,
labelAlign:"left",
labelWidth:60,
defaults:{xtype:"textfield"},
url:"admin/index.action",
listeners:{
"actioncomplete":function(_form,_action){
alert("OK");
},
"beforeaction":function(_form,_action){
alert("Submit");
}
},
items:[{
fieldLabel:"用户名",
name:"username"
},{
fieldLabel:"密码",
name:"password"
},{
fieldLabel:"重复密码"
},{
fieldLabel:"Email"
}],
renderTo:Ext.getBody(),
buttons:[{
text:"提交",
handler:function(){
form.getForm().submit();
}
},
{
text:"取消",
}
]
})
});
在提交时,事件beforeaction是可以触发的。但是,当服务器端的响应回来后,不能触发actioncomplete事件。不知是何原因。我还做过其它几个提交方法;如:
form.getForm().submit({
url:"http://localhost:8888/TestStruts2AndExtjs/admin/index.action",
method:"post",
success:function(form,action){
Ext.Msg.alert("友情提示","注册成功");
},
failure:function(form,action){
Ext.Msg.alert("友情提示","Sorry!注册失败");
}
});
都只能传数据到后台,都不能,在返回结果后,触发事件。