Handsontable の Autocomplete の欠点

Handsontable の Autocomplete の悪いところは、ローマ字変換のキー入力では思惑どおりに働かないところである。
jQuery UIではそんなことは起きない。

f:id:posturan:20160313190952j:plain


Handsontable は、ここで、全角入力モードにして、「si」 とキーを打つと、、

f:id:posturan:20160313190958j:plain


となってしまう。

これは、Handsontable が、keydown のイベントで選択候補を抽出して描画する autocomplete の処理を実行してしまうからだ。

いろいろ回避策を探ったが良い方法が見つからず、結局、
jquery.handsontable.full.js を以下のように修正して使うことにした。


jquery.handsontable.full.js の 5431行目あたりに、キーイベントの bind を実行している箇所がある。
ここの、keydown.autocompleteEditor を、keyup.autocompleteEditor に変更する。

5431: AutocompleteEditor.prototype.bindEvents = function(){
5432:
5433: var that = this;
5434: //this.$textarea.on('keydown.autocompleteEditor', function(event){
5435: this.$textarea.on('keyup.autocompleteEditor', function(event){

このように修正することで以下のように、「si」とキー入力、「し」を表示して以下のように思いどおりの動作になる。

f:id:posturan:20160313191006j:plain



この修正は、Handeontable の Dropdown でも有効な修正になる。