DataTables 无法读取未定义的属性 ‘row’。

huangapple go评论82阅读模式
英文:

DataTables cannot read property 'row' of undefined

问题

不能读取未定义的属性'row'

$.ajax({
    // ...(你的其他Ajax设置)
    success:function(data){
        console.log('检查数据', data); // 请参见下面的截图
        console.log('检查行', row); // 请参见下面的截图

        table.cell( row, 0 ).data( data.data.seqNo );
        table.cell( row, 1 ).data( data.data.name );
        table.cell( row, 2 ).data( data.data.customer.name );
        table.cell( row, 3 ).data( data.data.province.name );
        table.cell( row, 4 ).data( data.data.city.name );
        table.cell( row, 5 ).data( data.data.address );
        table.cell( row, 6 ).data( data.data.postalCode );
        $('.editModalLocation').modal('hide');
        $(".customerMessage").append('<div class="alert alert-success fade in">'+data.success+'</div>').hide(4000);
    }
});

表格

<table id="dataTableLocations" class="table table-striped table-bordered">
    <thead>
    <tr>
        <th width="30">Seq No.</th>
        <th>Name</th>
        <th>Customer</th>
        <th>Province</th>
        <th>City</th>
        <th>Address</th>
        <th>Postal Code</th>
        <th width="120">Options</th>
    </tr>
    </thead>
    <tbody id="table_dataLocations"></tbody>
</table>

屏幕截图

DataTables 无法读取未定义的属性 ‘row’。

有人能告诉我这段代码有什么问题吗?

英文:

I try to show my new data in table after update gets successful but it returning

> Cannot read property 'row' of undefined

Code

Script

&lt;script&gt;
    $(function() {
        $.ajaxSetup({
            headers: {
                &#39;X-CSRF-TOKEN&#39;: $(&#39;meta[name=&quot;csrf-token&quot;]&#39;).attr(&#39;content&#39;)
            }
        });
        var table = $(&quot;#dataTableLocations&quot;).DataTable();
        $(&#39;#dataTableLocations&#39;).on(&#39;click&#39;, &#39;.locationUpdate&#39;, function(e){
            e.preventDefault();
            var ordID = $(this).data(&#39;id&#39;);
            var row = $(this).closest(&#39;tr&#39;);

            var province_id = $(this).closest(&quot;form&quot;).find(&quot;#province_idLocationUpdate&quot;).val();
            var city_id = $(this).closest(&quot;form&quot;).find(&quot;#city_idLocationUpdate&quot;).val();
            var name = $(this).closest(&quot;form&quot;).find(&quot;#nameLocUpdate&quot;).val();
            var address = $(this).closest(&quot;form&quot;).find(&quot;#addressLocationUpdate&quot;).val();
            var postalCode = $(this).closest(&quot;form&quot;).find(&quot;#postalCodeUpdate&quot;).val();
            var seqNo = $(this).closest(&quot;form&quot;).find(&quot;#seqNoUpdate&quot;).val();

            $.ajax({
                type:&#39;PUT&#39;,
                url:&#39;{{url(&#39;dashboard/customer-locations&#39;)}}/&#39;+ordID,
                data:{
                    province_id:province_id,
                    city_id:city_id,
                    name:name,
                    address:address,
                    postalCode:postalCode,
                    seqNo:seqNo
                },
                success:function(data){
                    console.log(&#39;check data&#39;, data); // see the screenshot below
                    console.log(&#39;check row&#39;, row); // see the screenshot below



                    table.cell( row, 0 ).data( data.data.seqNo );
                    table.cell( row, 1 ).data( data.data.name );
                    table.cell( row, 2 ).data( data.data.customer.name );
                    table.cell( row, 3 ).data( data.data.province.name );
                    table.cell( row, 4 ).data( data.data.city.name );
                    table.cell( row, 5 ).data( data.data.address );
                    table.cell( row, 6 ).data( data.data.postalCode );
                    $(&#39;.editModalLocation&#39;).modal(&#39;hide&#39;);
                    $(&quot;.customerMessage&quot;).append(&#39;&lt;div class=&quot;alert alert-success fade in&quot;&gt;&#39;+data.success+&#39;&lt;/div&gt;&#39;).hide(4000);
                }
            });

        });
    });
&lt;/script&gt;

Table

&lt;table id=&quot;dataTableLocations&quot; class=&quot;table table-striped table-bordered&quot;&gt;
    &lt;thead&gt;
    &lt;tr&gt;
        &lt;th width=&quot;30&quot;&gt;Seq No.&lt;/th&gt;
        &lt;th&gt;Name&lt;/th&gt;
        &lt;th&gt;Customer&lt;/th&gt;
        &lt;th&gt;Province&lt;/th&gt;
        &lt;th&gt;City&lt;/th&gt;
        &lt;th&gt;Address&lt;/th&gt;
        &lt;th&gt;Postal Code&lt;/th&gt;
        &lt;th width=&quot;120&quot;&gt;Options&lt;/th&gt;
    &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody id=&quot;table_dataLocations&quot;&gt;&lt;/tbody&gt;
&lt;/table&gt;

Screenshot

DataTables 无法读取未定义的属性 ‘row’。

Can anyone please tell me what's wrong with this code?

答案1

得分: 1

尝试更改此代码部分:

var row = $(this).closest('tr')

更改为

var row = table.row(this);

英文:

Try change this:

> var row = $(this).closest('tr')

change to

> var row = table.row(this);

答案2

得分: -1

已解决

我将我的更新代码移到了父脚本中,其中数据正在返回,并将它们合并成了一个,现在我的代码按照预期工作。

英文:

Solved

I moved my update code to parent script where the data was returning and merged them all in one now my code works as it supposed to.

huangapple
  • 本文由 发表于 2020年1月3日 15:27:46
  • 转载请务必保留本文链接:https://go.coder-hub.com/59574713.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定