1

我有一个使用 jqGrid 插件的数据网格,如果输入的电子邮件已经存在于数据库中,我希望有一个自定义错误消息。它将字段传递给 cfc 并返回此 json(这是 Firebug 窗口中显示的内容,因此该部分正常): {"USERDATA":{"MSG":"Email already exists in registration","TYPE":"错误”}}

所以基本上我正在尝试解析这个json并发出警​​报或对模态窗口做一些事情。我在这里找到了以下代码,它似乎可以很好地传递 json。下面是调用 GetResponseData 函数的添加选项部分:

{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"}

添加了警报的功能以进行测试:

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() 都出现相同的错误:resp.USERDATA is undefined

感谢大家!我对 CF 和 jquery 还很陌生,感谢您的帮助。

4

1 回答 1

2

如果您使用的是 Firebug 或 Google Chrome,我建议您使用控制台视图并将您的警报替换为 console.log() 调用。这将让您检查对象并查看它们的结构。

尝试

console.log(jreturn)

我看到你正在使用 jreturn.USERDATA[0].MSG; . 为什么要像访问数组一样访问 USERDATA?对于我们看到的 responseText 的输出,这应该是

jreturn.USERDATA.MSG;
于 2012-04-19T02:34:20.383 回答