onclick函数与输入e中的另一个函数e多个变量

时间:2017-08-10 07:46:02

标签: javascript jquery datatable

在我的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功能上使用的正确序列转义是什么,考虑到在数据表中的渲染?

1 个答案:

答案 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');
    });
}