当只更改其中一个实例时,Ckeditor onchange会触发所有实例

时间:2013-04-23 14:09:59

标签: ckeditor fckeditor

我正在使用ckeditor内联使用此代码将一些用户可编辑的行添加到表中(该函数每行调用一次,参数是我想要的每种类型的可编辑列的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事件。

0 个答案:

没有答案