3

数式入力に MathQuill lib を使用しています。、、および を除くすべてのコマンドを制限 する必要があります。+-*/

私は次の方法でこれを達成しました:

var previous = '';
        var answerMathField = MQ.MathField(answerSpan, {
          handlers: {
            edit: function(mathField) {
              var enteredMath = mathField.latex(); // Get entered math in LaTeX format
              let mathSplit = enteredMath.split('\\');

                //restrict commands by triming '\' in 'enteredMath'
                if(mathSplit.length > 1 && enteredMath !== previous){
                  let formatted = mathSplit.reduce((a, b)=>{
                        if(b.indexOf('cdot') !== -1
                                    ||  b.indexOf('frac') !== -1
                                    ||  b === ' '){
                            b = "\\" + b;
                        }
                        return a + b;
                  }, '');

                  //save current math for exiting this loop
                  previous = formatted;

                  answerMathField.latex("");
                  answerMathField.write(formatted);
               }
              }
            }
          }

これにより、必要に応じてすべてのコマンドが制限されますが、answeredMathField.write() カーソルは行末に移動します。カーソルを特定の位置に移動する方法はありますか?

それに加えて、誰かが MathQuill のコマンドを制限するためのより洗練された解決策を提案できれば、それは素晴らしいことです

どんな助けでも大歓迎です!

4

0 に答える 0