我遇到了Datatables和缓存变量的问题。
我需要在提交时检索#peso_totale_componenti
以检查其有效性。
示例中的正确值是15.4
,就像它的输入值一样。
我已插入警告以检查此输入,但我得到6.6
(这是第一行的值。)
var peso_totale_componenti = $("#peso_totale_componenti").val();
alert(peso_totale_componenti);
我不知道为什么。但是,如果我更改选项卡面板或调整窗口大小并单击提交,则此时警报中的值是正确的(15.4)
。
数据表的缓存值似乎有问题吗?
更新:ID是唯一的。我在Datatables中得到了一个drawcallback的总和:
drawCallback: function () {
var api = this.api();
var index = 3; //colonna pesi
$( api.column(index).footer() ).html( "<input type='hidden' id='peso_totale_componenti' value='" + api.column(index).data().sum() + "'>" + api.column(index).data().sum() ); //peso totale
},
更新2:解决使用:
table.rows().invalidate('dom').draw(false);
每次插入/删除行后。
答案 0 :(得分:0)
这是因为您使用了两次相同的ID值。 ID应该是一个元素所独有的。
使用类来定位需要应用相同样式/ js的多个元素,然后使用ID来定位特定元素。
答案 1 :(得分:0)
您可以尝试使用以下选择器来增加选择器的特异性编号;
var peso_totale_componenti = $("table tfoot tr th input#peso_totale_componenti").val();
alert(peso_totale_componenti);
其他元素在dom中可能具有相同的ID