【发布时间】:2017-10-22 04:15:21
【问题描述】:
我从字符串创建按钮并将其添加到 DOM。
这里是javascript代码:
var se = "<button class='btn btn-xs btn-default btn-quick' title='Save Row' onclick=\"jQuery('#jqgrid').saveRow('" + cl + "','" + null + "','" + '../UpdateStatus' + "','" + {'name':"content1"} + "','" + null + "','" + null + "','" + null + "');\"><i class='fa fa-save'></i></button>";
以下是按钮附加到 DOM 的方式:
jQuery("#jqgrid").jqGrid('setRowData', ids[0], { act: se });
jqgrid - 是某个 html 元素的id。
正如您在按钮内部看到的,我有 onClick 属性,该属性调用名为 saveRow 的函数。
这里是被调用函数的签名:
saveRow: function (rowid, successfunc, url, extraparam, aftersavefunc, errorfunc, afterrestorefunc) {}
我传递给saveRow函数的参数之一是json:
{'name':"content1"}
以及页面加载后按钮在 DOM 树中的外观:
你可以看到DOM转换了这个参数(红框):
{'name':"content1"}
到这里:
'[Object object]'
知道为什么 JSON 参数会转换为 [Object object] 吗?
更新:
DOM 的外观如下:
如果我用这种态度:
se = "<button class='btn btn-xs btn-default btn-quick' title='Save Row' onclick=\"jQuery('#jqgrid').saveRow('" + cl + "','" + null + "','" + '../UpdateStatus' + "','" + JSON.stringify({ foo: 'bar' }) + "','" + null + "','" + null + "','" + null + "');\"><i class='fa fa-save'></i></button>";
更新 2:
DOM 的外观如下:
如果我用这种态度:
se="<button class='btn btn-xs btn-default btn-quick' title='Save Row' onclick='jQuery('#jqgrid').saveRow('" + cl + "','" + null + "','" + '../UpdateStatus' + "','" + JSON.stringify({ foo: 'bar' }) + "','" + null + "','" + null + "','" + null + "');'><i class='fa fa-save'></i></button>";
点击按钮后出现此错误:
【问题讨论】:
标签: javascript jquery json dom jqgrid