单击数据表行中下拉列表中的选项时调用 js 函数并发送一些数据

Call js function and send some data when click an option from dropdown in Datatable row

我正在寻找在单击我的下拉列表后调用 js 函数。该代码有效,当我单击它时,它会调用 myFunction。我的问题是我需要将数据表行作为参数添加到 myFunction 中。

我的错误:ReferenceError: Can't find variable: meta

我是 javascript 和 html 语言的菜鸟。

<script>
function myFunction(selectObject, row) {
    var value = selectObject.value; 
    alert("Actualización Status: " + value + row);
}
</script>

<script>
    var json={{ posts_list | safe }};
    $(document).ready(function() {
        var table = $('#posts_table').DataTable( {
            dom: 'Bfrtip',
            buttons: [
                'copy', 'csv', 'excel', 'print'
            ],
            "scrollX": true,
            data: json.data,
            columns:[
                {defaultContent: ""},
                {data: "_id"},
                {
                    "data": "status",
                    "render": function(data, type, row, meta){
                        if (data == 'no_denunciado') {
                            data = '<select id="status" onchange="myFunction(this, meta.row)">' +
                            '<option value="no_denunciado">' + data + '</option>' +
                            '<option value="nuevo">Nuevo</option>' +
                            '<option value="en_gestion">En Gestion</option>' +
                            '<option value="baja_edenor">Baja</option>' +
                            '</select>';
                        }

meta.row 超出了您需要放入数据的函数范围,而不是变量 meta.data,因为它会像这样超出范围。

改变

data = '<select id="status" onchange="myFunction(this, meta.row)>'

data = '<select id="status" onchange="myFunction(this, \''+meta.row+'\')">'

从聊天中编辑我看到你想串一个对象我写了一个快速函数

function ObjectToString(myObject){
var keys = Object.keys(myObject);
var returnedString="";
keys.forEach(key=>{returnedString+="["+key+":"+myObject[key]+"]";});
return returnedString;
}