Ext2.0 form 提交后,在firedebug中跟踪,发现确实提交完毕,而且action.response.statusText=='OK',但是Ext仍然认为是提交失败。那么,问题处在那里呢?原来提交后,ext默认认为放回的是JSON格式的数据,且格式为 {success:true, data:age=567} ,第一个必须是success:true,否则认为放回无效数据。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
Ext.onReady(
function
()
...
{
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// Required if showing validation messages
Ext.QuickTips.init();
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
var simpleForm = new Ext.FormPanel(...{
labelAlign: 'left',
title: '表单例子',
buttonAlign:'right',
bodyStyle:'padding:5px',
width: 300,
frame:true,
labelWidth:45,
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
items: [...{
layout:'column', //定义该元素为布局为列布局方式
border:false,
labelSeparator:':',
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
items:[...{
columnWidth:.5, //
layout: 'form',
border:false,
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
items: [...{
cls : 'key',
xtype:'textfield',
fieldLabel: '用户名',
name: 'name',
anchor:'90%'
}]
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
},...{
columnWidth:.5,
layout: 'form',
border:false,
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
items: [...{
cls : 'key',
xtype:'textfield',
inputType:'password',
fieldLabel: '口令',
name: 'passwd',
anchor:'90%'
}]
}]
}],
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
buttons: [...{
text: '保存',
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
handler:function()...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
try...{
// 执行当前表单面板的submit
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
simpleForm.form.submit( ...{
// 动作发生期间显示的文本信息
waitMsg : '正在登录......',
// submit发生时指向的地址
url : 'test.jsp',
// 表单提交方式
method : 'POST',
// 数据验证通过时发生的动作
success: fsuccess,
failure:ferror
});
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}catch( e)...{
Ext.Msg.alert("error",e)
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
},...{
text: '取消',
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
handler:function()...{simpleForm.form.reset();}
}]
});
simpleForm.render(document.body);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
);
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
function
fsuccess(form, action)
...
{
Ext.Msg.alert('成功', action.result.data);
}
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
function
ferror(form,action)
...
{
//这里命名是OK啊,原来是要求server放回JSON格式数据,且格式为:{success:true, data:age=567}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(action.response.statusText == 'OK')...{
fsuccess(form, action);
return;
}
form.reset();
Ext.Msg.alert('失败了,为啥',''+action.failureType + ':' +action.response.responseText);
}
from:http://blog.csdn.net/winderain/