2

我正在使用 ckeditor inline 使用此代码将一些用户可编辑的行添加到表中(该函数每行调用一次,参数是我想要的每种类型的可编辑列的 Id)。忽略多余的数组构建。

function activare_campuri_editabile_extinse(pu, adaos, cota, cant, cant_doc, pv) {      
var campuri_editabile = [ pu, adaos, cota, cant, cant_doc , pv];

$j.each(campuri_editabile, function(index) {
    var ce = this; 
    editor = CKEDITOR.inline( $j('#' + this).attr('id'), {          
        enterMode : CKEDITOR.ENTER_BR,
        on: {
            blur: function( event ) {
                var data = event.editor.getData();
                if(ce.split('_')[0] == 'pu' || ce.split('_')[0] == 'pv') {
                    $j('#'+ce).text(formatare_cu_virgula(data));
                }
                if(ce.split('_')[0] == 'pu') {                      
                    verificare_modificare_pret('#' + ce, data, 'select_gestiune_primitoare' );
                }
            },
            focus: function ( event ) {
                var data = event.editor.getData();
                if(ce.split('_')[0] == 'pu' || ce.split('_')[0] == 'pv') {  
                    $j('#'+ce).text(deformatare_cu_virgula(data));
                }
            },      
            change: function( event ) {
                if(event.editor.checkDirty() == true) {                     
                    var data = event.editor.getData();
                    if(ce.split('_')[0] == 'pu' || ce.split('_')[0] == 'pv' || ce.split('_')[0] == 'cota') {
                        corelare_valori_tabel(ce,'adaos', 'extins', data);
                    }
                    if(ce.split('_')[0] == 'adaos') {
                        corelare_valori_tabel(ce,'pret_vanzare', 'extins', data);
                    }
                    if(ce.split('_')[0] == 'cant') {                                                    
                        corelare_valori_tabel(ce, 'cantitate', 'extins', data);
                    }
                    event.editor.resetDirty();
                }                   
            }          
        }
    } );
    editor.config.keystrokes = [[ 13, 'doNothing']];
    editor.resetDirty();
    });
}

onchange 函数旨在修改行中的某些单元格以保持数据的完整性(使用此示例:设置加价百分比,以便在增值税或进项价格发生变化时销售价格保持不变,等等) . 问题是当一个编辑器实例的一个 onchange 事件触发时,它们都会触发。并且查看两个或多个表格单元格如何以两种方式链接(更改标记将更改售价,而更改售价将更改标记)结果是完全混乱的。

使用 checkDirty 和 resetDirty 方法时我做错了什么吗?还是我错过了什么?(在 ckEditor 4.01 上运行 onchange 插件 1.7)

我设法通过为直接启用了 ckeditor 的元素添加 onkeyup 处理程序来解决这个问题。因此,我没有通过 CKEDITOR 添加 onchange 事件,而是直接向数组中的每个元素添加了 onkeyup 事件。

4

0 回答 0