liaoboisyj 2011-03-22 09:49
浏览 238
已采纳

关于Extjs Form提交的问题。

大家好,我这两天在调试一个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!注册失败");
}
});
都只能传数据到后台,都不能,在返回结果后,触发事件。

  • 写回答

3条回答 默认 最新

  • lizhiyezi 2011-03-22 11:58
    关注

    formPanel 表单提交返回的数据 需要一定规则的,
    返回json数据需要有 sucess 属性表示 成功或者失败。

    参考 Ext.form.Action.Submit 函数
    [code="java"]success : function(response){
    var result = this.processResponse(response);
    if(result === true || result.success){
    this.form.afterAction(this, true);
    return;
    }
    if(result.errors){
    this.form.markInvalid(result.errors);
    this.failureType = Ext.form.Action.SERVER_INVALID;
    }
    this.form.afterAction(this, false);
    },[/code]

    所以跟平常ajax提交返回数据格式有点不一样的
    {sucess:true,.....}

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看