在我的js文件中,我有一个数据表,其中某些按钮可以在某些条件下出现。单击这些按钮时,通过onclick函数调用函数,设置全局变量。
这是我实际按钮的一个例子:
{ "data": "file_integrity",
"render" : function (data, type, full, meta)
{
return data > 0 ? "<button type='button' class='btn btn-danger btn-md' data-toggle='modal' data-target='#myModal' onclick='editName(\"" + full.name +"\");'> " +
"Check! </button>" : '0';
}
}
实际上这很好用;按钮是否正确显示,取决于条件,当我点击他时,此功能:
function editName(aHostName)
{
host_name = aHostName;
};
正确设置此全局变量:var host_name
。
假设我有另一个全局变量,这个:var type_name
并且我想要转换我的编辑函数,所以也要设置这个;换句话说,该功能将成为:
function editName(aTypeName, aHostName)
{
type_name = atypeName;
host_name = aHostName;
};
并假设我希望使用反映"data"
的字符串设置类型名称;所以,在上面的例子中,我们有"data": "file_integrity"
我希望set type_name的字符串为“File Integrity”。这意味着字符串“文件完整性”是editname的输入,此集合type_name = "File Integrity";
;问题是:在onclick功能上使用的正确序列转义是什么,考虑到在数据表中的渲染?
答案 0 :(得分:0)
我会稍微改变一下 - 不是调用onclick
并将参数传递给editName
函数,而是可以为值创建数据属性并使用数据表rowCallBack
来绑定点击事件到按钮。
"render" : function (data, type, full, meta)
{
return data > 0 ? "<button type='button' class='btn btn-danger btn-md' data-toggle='modal' data-target='#myModal' data-typename='" + data + "' data-hostname='" + full.name + "'> " + "Check! </button>" : '0';
}
然后在数据表rowCallBack事件中,您可以将click事件绑定到按钮,该按钮将数据属性值分配给您的全局变量:
'rowCallback': function (row, data, index) {
var btn = $(row).find("button");
btn.on('click', function (e) {
type_name = $(e.target).data('typename');
host_name = $(e.target).data('hostname');
});
}