2012-04-19 122 views
1

我有一個使用jqGrid插件的數據網格,如果輸入的電子郵件已存在於數據庫中,我想要自定義錯誤消息。它將字段傳遞給cfc並返回此json(這是Firebug窗口中顯示的內容,以便部分正常):{「USERDATA」:{「MSG」:「電子郵件已存在於註冊中」,「TYPE」:「錯誤「}}jqGrid和Coldfusion解析json響應

所以基本上我試圖解析出這個JSON,並做出警告或做模式窗口的東西。我在這裏找到了下面的代碼,它似乎通過了JSON。下面是調用GetResponseData功能的附加選項的一部分:兩者具有相同

function GetResponseData (resp) { 

var jtxt=(resp.responseText); //{"USERDATA":{"MSG":"Email already exists in registration","TYPE":"Error"}} 

var jreturn=JSON.parse(jtxt)   

alert(jreturn); //shows '[Object.object]' 

var msg=jreturn.USERDATA[0].MSG; 
var type=jreturn.USERDATA[0].TYPE; 
alert(msg); 
alert(type); 
} 

我試過JSON.parse和eval():

{addCaption:"Add Recipient",closeOnEscape:true,savekey: [true,13],closeAfterEdit : false, errorTextFormat:commonError,width:"450" 
      ,afterSubmit:function(response,postdata){ return GetResponseData(response); },reloadAfterSubmit:true,bottominfo:"Fields marked with (*) are required",top:"60",left:"70"} 

與警報功能添加到測試錯誤: resp.USERDATA is undefined

謝謝大家!我相當新的CF和jQuery,任何幫助表示讚賞。

回答

2

如果您使用的是Firebug或Google Chrome,我建議使用控制檯視圖並替換console.log()調用的警報。這可以讓你檢查物體並查看它們的結構。

嘗試

console.log(jreturn) 

我看到你正在使用jreturn.USERDATA [0] .MSG; 。你爲什麼要像訪問數組一樣訪問USERDATA?對於我們所看到的作爲responseText的輸出,應該是

jreturn.USERDATA.MSG;