英語をヒンディー語のonkeyup
イベントに変換するtextarea
があります。しかし、編集のためにキャレットを後ろに移動すると、最初に入力した文字Iがヒンディー語に変換され、キャレットは文字列の最後に移動します。 textarea
内の同じ位置にキャレットを格納することができるため、文字列の最後に移動しませんか?テキストエリアを編集可能にするには?
1
A
答えて
0
この問題は、キャレットを移動するキーアップごとにテキストエリアの値を上書きしてしまうことです。
の値をに置き換えて置き換え、置き換えた後に再度設定することをお勧めします。
Stackoverflow Answer: Get Caret Position - コード変更されていない
function getCaret(el) {
if (el.selectionStart) {
return el.selectionStart;
} else if (document.selection) {
el.focus();
var r = document.selection.createRange();
if (r == null) {
return 0;
}
var re = el.createTextRange(),
rc = re.duplicate();
re.moveToBookmark(r.getBookmark());
rc.setEndPoint('EndToStart', re);
return rc.text.length;
}
return 0;
}
Stackoverflow Answer: Set Caret Position下記のリンクから答え - コード変更されていない
function SetCursorPosition(pos)
{
// HERE txt is the text field name
var obj=document.getElementById('<%= txt.ClientID %><%= txt.ClientID %>');
//FOR IE
if(obj.setSelectionRange)
{
obj.focus();
obj.setSelectionRange(pos,pos);
}
// For Firefox
else if (obj.createTextRange)
{
var range = obj.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
下記のリンクの答えから、すべての交換を回避することでこれを回避するには、いくつかの他の方法があります。キーアップイベントのテキストをボタン押し、ぼかし/ぼかしまたはその他のものに移動します。これにより、キャレット位置が最後までリセットされることを心配する必要がなくなります。
私は、テキスト変更を引き起こす別のイベントに移動するために私が見る唯一の真の不利な点は、それが瞬間的ではないということだけです。
関連する問題
- 1. CKEditorはテキストエリアで編集不可能
- 2. extjsのテキストエリアを編集不可にする
- 3. UINavigationBarタイトルを編集可能にする
- 4. 編集可能なtelerik mvcグリッド表示をカスタマイズし、クリック時に編集可能にするには?
- 5. slickgridの編集可能な行と編集不可能な行
- 6. 編集可能な編集テキストをリストビューに入れる方法は?
- 7. テキストエリアとライブプレビューの双方向編集を許可する方法
- 8. JavaFX TableViewセルを編集可能にするには?
- 9. Android文字列を編集可能に変換するには
- 10. joomlaでフッタを編集してエディタ(tinymce)で編集可能にする方法
- 11. コンテンツ編集可能にコピー<span>
- 12. PHPで編集可能なPDFに値を挿入し、編集可能にしておきます
- 13. Dreamweaverテンプレートで編集可能なリージョンを編集不可能なリージョンに変更する方法
- 14. 編集可能なコンボボックス
- 15. MVC3編集可能なグリッド
- 16. jsf編集可能なドロップダウン
- 17. PyQt:編集可能なタブラベル
- 18. Django編集可能リストビュー
- 19. フレックス編集可能なコンボボックス
- 20. jQuery編集可能なデータテーブル
- 21. 編集可能なリスト/グリッド
- 22. 編集可能なUITableView
- 23. 編集可能なコンボボックス
- 24. WPF:編集可能なラジオボタン
- 25. フレックスグリッド非編集可能列
- 26. Android編集可能CountDownTimer Issue
- 27. jQueryコンボボックス/オートコンプリート、編集可能
- 28. 編集可能なリッチテキストボックス
- 29. 編集可能なWPFリストボックス
- 30. Yesod編集可能テーブル
キャレットがちょうど入力した文字の右側に移動するのはなぜ問題なのですか?それは正常な行動ではありませんか?新しい文字の後にキャレットが置かれない場合は、逆方向に入力します(新しい文字はそれぞれ前の文字の左に表示されます)。 – Calvin
それはそうではありません。実際には文字列の真ん中に新しい文字を挿入すると、しばらく入力した新しい文字の右側にキャレットが移動し、文字列の最後に移動します... –