diff --git a/src/controllers/keyboard.js b/src/controllers/keyboard.js index b89cd45..80a5263 100644 --- a/src/controllers/keyboard.js +++ b/src/controllers/keyboard.js @@ -856,8 +856,11 @@ export function keyboardInitial(){ formulaMoveEvent("right", ctrlKey, shiftKey,event); } else if (!((kcode >= 112 && kcode <= 123) || kcode <= 46 || kcode == 144 || kcode == 108 || event.ctrlKey || event.altKey || (event.shiftKey && (kcode == 37 || kcode == 38 || kcode == 39 || kcode == 40 || kcode == keycode.WIN || kcode == keycode.WIN_R || kcode == keycode.MENU))) || kcode == 8 || kcode == 32 || kcode == 46 || (event.ctrlKey && kcode == 86)) { - formula.functionInputHanddler($("#luckysheet-functionbox-cell"), $("#luckysheet-rich-text-editor"), kcode); - setCenterInputPosition(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1], Store.flowdata); + if(event.target.id!="luckysheet-input-box" && event.target.id!="luckysheet-rich-text-editor"){ + formula.functionInputHanddler($("#luckysheet-functionbox-cell"), $("#luckysheet-rich-text-editor"), kcode); + setCenterInputPosition(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1], Store.flowdata); + } + } }).keyup(function (e) { let kcode = e.keyCode; diff --git a/src/global/formula.js b/src/global/formula.js index deb5480..5f3ce09 100644 --- a/src/global/formula.js +++ b/src/global/formula.js @@ -3238,7 +3238,7 @@ const luckysheetformula = { let value = $editer.text(), valuetxt = value; - if (value.length > 0 && !(value1txt.substr(0, 1) != "=" && value1.indexOf("span")>-1) && (kcode != 229 || value.length == 1)) { + if (value.length > 0 && value1txt.substr(0, 1) == "=" && (kcode != 229 || value.length == 1)) { value = _this.functionHTMLGenerate(value); value1 = _this.functionHTMLGenerate(value1txt); @@ -3266,10 +3266,31 @@ const luckysheetformula = { } $functionbox.html(value); + + } - else if(value1txt.substr(0, 1) != "=" && value1.indexOf("span")>-1){ + else if(value1txt.substr(0, 1) != "=" && (kcode != 229 || value.length == 1)){ + //&& value1.indexOf("span")>-1 // $editer.html(value1); - $functionbox.html(value); + let w = window.getSelection(); + if(w!=null && w.type!="None"){ + let range = w.getRangeAt(0); + let c = range.startContainer; + + if(c.id=="luckysheet-rich-text-editor" || $(c).closest("#luckysheet-rich-text-editor")){ + $functionbox.html(value); + } + else if(c.id=="luckysheet-functionbox-cell" || $(c).closest("#luckysheet-functionbox-cell")){ + if(value1.indexOf("span")>-1){ + + } + else{ + $editer.html(value); + } + } + + } + } _this.rangestart = false;