Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery数据表以编程方式使行不可编辑_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript jQuery数据表以编程方式使行不可编辑

Javascript jQuery数据表以编程方式使行不可编辑,javascript,jquery,datatables,Javascript,Jquery,Datatables,我在页面上有一个datatable,在我打开/关闭复选框后,我想使除第一行之外的所有行都不可编辑。然后,我将把第一行上的值复制到所有其他行(这一部分有效) 我一直在尝试切换负责使某些行上的列可编辑的类,但由于某些原因它不起作用 在我的字段声明中,我有: { data: 'id' }, { data: 'blocked' }, { data: 'store' }, { data: 'quantity', className: 'edit' }, { data: 'price' ,

我在页面上有一个datatable,在我打开/关闭复选框后,我想使除第一行之外的所有行都不可编辑。然后,我将把第一行上的值复制到所有其他行(这一部分有效)

我一直在尝试切换负责使某些行上的列可编辑的类,但由于某些原因它不起作用

在我的字段声明中,我有:

{ 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,即关闭并再次打开特定的行编辑和导航。