Handsontableで日本語入力関連キーを無視する


Handsontableで漢字キーなどの日本語入力関連キーを押すとセルへの入力開始とみなされ、既存のセル内容がクリアされてしまいます。

以下のようにすることで、日本語入力関連キーを無視させることができます。

ignoreimekey.js
var hot = new Handsontable(container, {
  // ...
  // Handsontableのオプション指定
  // ...
});

hot.updateSettings({
  beforeKeyDown: function (e) {
    if ([28,29,241,242,243,244].indexOf(e.keyCode) >= 0) {
      e.isImmediatePropagationEnabled = false;
      e.isImmediatePropagationStopped = function(){
        return true;
      }
    }
  }
});

jsFiddleのデモ

以下のキーを無視しています。

  • 変換 (28)
  • 無変換 (29)
  • カタカナ (241)
  • ひらがな (242)
  • 漢字キー (243, 244)