前提・実現したいこと
htmlのテキストボックスの制御について教えてください。
現在構築しているシステムでAGGridというUIフレームワークを使用しているのですが、
テキスト内で矢印(←、→)キーによるキャレット(テキスト内のカーソル)移動が無効になってしまいました。
そのため、下記javascript関数(setCaretPosition)を作成し、矢印(←、→)キーがkeydownされるたびにselectionRangeでキャレット移動させるようにしました。
キャレットの移動は実現できたのですが、テキスト入力が表示範囲を超えた場合に表示外への表示ができず、困っています。
javascriptまたはcssなどで表示をキャレットに追従させたいです。
また、そもそも表示が固定されてしまう原因で考えられるものがありましたら
ご教示いただきたいです。
発生している問題
下記のようなテキストで"123456789"と入力がある場合に
右矢印(→)キーを押下しても表示が固定されたままで"9"が表示できません。
※マウスで操作すれば表示可能です。
該当のソースコード
javascript
1function setCaretPosition(event) { 2 var elem = event.target || event.srcElement; 3 if (elem != null) { 4 var obj = document.getElementById(elem.id); 5 6 if (event.keyCode == "37") { 7 // 左矢印キーが押された場合 8 if (obj.selectionStart > 0) { 9 obj.setSelectionRange(obj.selectionStart - 1, obj.selectionEnd); 10 } 11 } 12 if (event.keyCode == "39") { 13 // 右矢印キーが押された場合 14 if (obj.value.length > obj.selectionEnd) { 15 obj.setSelectionRange(obj.selectionStart, obj.selectionEnd + 1); 16 } 17 } 18 } 19};
補足情報(FW/ツールのバージョンなど)
・ブラウザ IE11
・ag-grid-community v20.2.0
回答1件
あなたの回答
tips
プレビュー