Javascript jQuery数据表以编程方式使行不可编辑
我在页面上有一个datatable,在我打开/关闭复选框后,我想使除第一行之外的所有行都不可编辑。然后,我将把第一行上的值复制到所有其他行(这一部分有效) 我一直在尝试切换负责使某些行上的列可编辑的类,但由于某些原因它不起作用 在我的字段声明中,我有:Javascript jQuery数据表以编程方式使行不可编辑,javascript,jquery,datatables,Javascript,Jquery,Datatables,我在页面上有一个datatable,在我打开/关闭复选框后,我想使除第一行之外的所有行都不可编辑。然后,我将把第一行上的值复制到所有其他行(这一部分有效) 我一直在尝试切换负责使某些行上的列可编辑的类,但由于某些原因它不起作用 在我的字段声明中,我有: { data: 'id' }, { data: 'blocked' }, { data: 'store' }, { data: 'quantity', className: 'edit' }, { data: 'price' ,
{ data: 'id' },
{ data: 'blocked' },
{ data: 'store' },
{ data: 'quantity',
className: 'edit' },
{ data: 'price' ,
className: 'edit'},
{ data: 'description' ,
className: 'edit'},
{ data: 'reference' }
我使用的是数据键,因此,我还有以下声明:
keys: {
columns: '.edit',
editor: editor
}
这将仅使具有类的单元格。编辑为可编辑。这个很好用。这就是我试图使某些单元格不可编辑的原因:
$("#changeAll").on("click", function(e) {
// This bit does its work correctly. It assigns the class to the correct elements.
if($("#changeAll").is(":checked")) {
$('#theTable tbody tr:not(:first-child) td.edit').addClass('notEdit').removeClass('edit');
} else {
$('#theTable tbody tr:not(:first-child) td.notEdit').addClass('edit').removeClass('notEdit');
}
});
因此,类可以正确切换,但数据表似乎中断了。当试图修改任何给定的单元格时,它不再是可编辑的(即使是应该修改的单元格,也确实为其指定了正确的类)。此外,键导航似乎没有改变。任何编辑尝试后,都会向浏览器引发以下异常:
Uncaught TypeError: Cannot read property 'index' of undefined
at l._editor (dataTables.keyTable.min.js:9)
at HTMLTableElement.<anonymous> (dataTables.keyTable.min.js:8)
at HTMLTableElement.dispatch (jquery-1.11.3.js:4670)
at HTMLTableElement.elemData.handle (jquery-1.11.3.js:4338)
at Object.trigger (jquery-1.11.3.js:4579)
at jQuery.fn.init.triggerHandler (jquery-1.11.3.js:5295)
at _Api.<anonymous> (dataTables.keyTable.min.js:10)
at _Api.iterator (jquery.dataTables.js:6926)
at l._emitEvent (dataTables.keyTable.min.js:10)
at l._key (dataTables.keyTable.min.js:13)
Uncaught TypeError:无法读取未定义的属性“index”
在l.U编辑器(dataTables.keyTable.min.js:9)
在HTMLTableElement。(dataTables.keyTable.min.js:8)
在HTMLTableElement.dispatch(jquery-1.11.3.js:4670)
在HTMLTableElement.elemData.handle(jquery-1.11.3.js:4338)
at Object.trigger(jquery-1.11.3.js:4579)
在jQuery.fn.init.triggerHandler(jQuery-1.11.3.js:5295)
美国石油学会Api。(dataTables.keyTable.min.js:10)
at_Api.iterator(jquery.dataTables.js:6926)
在l.。(dataTables.keyTable.min.js:10)
在l.。(dataTables.keyTable.min.js:13)
我束手无策。任何帮助都将不胜感激,即使这意味着重写整个过程。您是否尝试过使用data tables api而不是直接的jquery来操作表?我会的,但我找不到一种方法来实现我想要的api,即关闭或再次打开特定的行编辑和导航。您是否尝试过使用data tables api,与直接的jquery相比,我更愿意操作表,但我找不到一种方法来实现我想要的api,即关闭并再次打开特定的行编辑和导航。