无法从控制器的pased string构建jquery dform

时间:2012-05-31 07:45:19

标签: javascript forms model-view-controller jqgrid

我想在我的MVC应用中使用dForm。 当我尝试从以下json字符串构建表单时,没关系。

 var formdata = {
        'action': 'index.html',
        'method': 'get',
        'elements':
                [
                 {
                  "type":"select",
                  "name":"Name",
                  "caption":"Name",
                  "options":"first":{"html":"first","class":"active"},
                            "second":{"html":"second","class":"active"},
                  "selected":null
                 } 
               ]
  };

但当我将生成的部分用于以下元素时:

 var elements = {
                "action": "index.html",
                "method": "get",
                "elements":
                        [
                             $('#jqgrid').jqGrid('getGridParam', 'userData')
                        ]
            };
            $('#myform').buildForm(elements);

我从dform得到以下错误:

    uncaught exception: No element type given! Must always exist.

但我确信“elements”标签与我在第一个例子中发布的相同。

我发现在firebug中我可以看到以下格式的jqGrid的getted字符串userData:

"userdata":"{\"type\":\"select\",\"name\":\"Name\",\"caption\":\"Name\",\"options\":{\"first\":\"first\" .....

我从JObject生成userData。 也许有问题。我试图替换逃脱的角色'\',但没有成功。

1 个答案:

答案 0 :(得分:0)

这种格式看起来不对。它可能正在尝试转换

{ "userdata" : "JSON String" }

据我所知,你可能要做的事情:

JSON.parse($('#jqgrid').jqGrid('getGridParam', 'userData').userdata);

如果不这样做,请查看Google Group,可能更容易为您提供帮助。