我正在使用Ext.direct.RemotingProvider。在服務器端,我做了一些驗證檢查。響應以JSON格式發回。Ext.Direct Form Integration
如果在進行驗證檢查時發現任何錯誤,字段success = false,並且錯誤將包含錯誤。
我想弄明白,我如何反映我發現在窗體(客戶端)的服務器端的錯誤。
在下面的鏈接中有一個我想要實現的例子。當客戶按下「提交」時會在表單中出現錯誤信息,它是如何工作的?
在我張貼在發生以下情況下的代碼: 在瀏覽器中有2個字段(姓名,電子郵件)和2層的按鈕。 這些字段與現在無關。他們被用作假人。
每當用戶按下「添加」按鈕,一個新的動作被添加到callBuffer的Ext.direct.RemotingProvider當用戶按下「應用」按鈕時,所有的動作都被髮送到路由器(MVC模型)並從那裏到一個特定的控制器。 (函數sfw.Direct.getProvider('sfwProvider')。combineAndSend()被觸發)。
至於現在,我故意失敗的響應和創建一個錯誤字段,就像我在線程的開始添加的示例鏈接。 我把錯誤字段{email =「Already exists」}。 但我看不到形式中的效果..
我做錯了什麼?
代碼:
appWiki.main_panel = new Ext.FormPanel({
renderTo: 'extjs_panels_container'
, id: 'appWiki_main_panel'
, name: 'appWiki_main_panel'
, defaultType: 'textfield'
, items: [
{
fieldLabel: 'Name',
name: 'name'
}
,{
fieldLabel: 'Email',
msgTarget: 'side',
name: 'email'
}]
,buttons:[
{xtype: 'sfw.Button'
, text: 'Add'
, handler: function(){sfw.rule.store.api.readByRowId({data: {_ROWID_: 1}});}
}
,{text: 'Submit'
, handler: function(){
appWiki.main_panel.getForm().submit({
});
}
}]
,api: {
// The server-side must mark the submit handler as a 'formHandler'
submit: sumbitAllRequests
}
, load: function()
{
setTimeout("hide_loading_mask()",2000);
}
});
嗨Jaitsu,這是我從服務器返回,但沒有影響窗體 - > {「type」: 「rpc」,「status」:true,「tid」:5,「result」:{「success」:false,「errors」:{「email」:「already taken」}}} – batz 2011-02-28 16:23:11
我編輯了我的答案,你可能只需要啓用快速提示 – JamesHalsall 2011-02-28 19:47:16
嗨,我添加了Ext.QuickTips.init(); (在創建formPanel之前),但仍然無法正常工作......對於我可能會丟失什麼的更多想法? – batz 2011-03-01 09:34:16