Ext2.0 form 提交后,在firedebug中跟踪,发现确实提交完毕,而且action.response.statusText=='OK',但是Ext仍然认为是提交失败。那么,问题处在那里呢?原来提交后,ext默认认为放回的是JSON格式的数据,且格式为 {success:true, data:age=567} ,第一个必须是success:true,否则认为放回无效数据。


Ext.onReady(
function
()
...
{

// Required if showing validation messages
Ext.QuickTips.init();

var simpleForm = new Ext.FormPanel(...{
labelAlign: 'left',
title: '表单例子',
buttonAlign:'right',
bodyStyle:'padding:5px',
width: 300,
frame:true,
labelWidth:45,

items: [...{
layout:'column', //定义该元素为布局为列布局方式
border:false,
labelSeparator:':',

items:[...{
columnWidth:.5, //
layout: 'form',
border:false,

items: [...{
cls : 'key',
xtype:'textfield',
fieldLabel: '用户名',
name: 'name',
anchor:'90%'
}]

},...{
columnWidth:.5,
layout: 'form',
border:false,

items: [...{
cls : 'key',
xtype:'textfield',
inputType:'password',
fieldLabel: '口令',
name: 'passwd',
anchor:'90%'
}]
}]
}],

buttons: [...{
text: '保存',

handler:function()...{

try...{
// 执行当前表单面板的submit

simpleForm.form.submit( ...{
// 动作发生期间显示的文本信息
waitMsg : '正在登录......',
// submit发生时指向的地址
url : 'test.jsp',
// 表单提交方式
method : 'POST',
// 数据验证通过时发生的动作
success: fsuccess,
failure:ferror
});

}catch( e)...{
Ext.Msg.alert("error",e)
}

}

},...{
text: '取消',

handler:function()...{simpleForm.form.reset();}
}]
});
simpleForm.render(document.body);


}
);


function
fsuccess(form, action)
...
{
Ext.Msg.alert('成功', action.result.data);
}

function
ferror(form,action)
...
{
//这里命名是OK啊,原来是要求server放回JSON格式数据,且格式为:{success:true, data:age=567}

if(action.response.statusText == 'OK')...{
fsuccess(form, action);
return;
}
form.reset();
Ext.Msg.alert('失败了,为啥',''+action.failureType + ':' +action.response.responseText);
}
from:http://blog.youkuaiyun.com/winderain/