[英]How to make textarea editable?
我有一個textarea
,可將英語轉換為印地語onkeyup
事件。 但是,當我將插入符號向后移動以進行編輯時,我鍵入的第一個字母將轉換為北印度語,而插入符號將移動到字符串的末尾。 是否可以將插入號存儲在textarea
中的同一點,以使其不會移動到字符串的末尾?
這樣做的問題是,每按一次鍵,您都將覆蓋textarea的值,這就是使插入符號移動的原因。
在替換文本之前,您將需要獲得插入符號的值,並在替換后再次設置它。
Stackoverflow答案:獲得插入位置 -以下鏈接答案中的代碼未更改
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答案:設置插入符位置 -以下鏈接答案中的代碼未更改
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();
}
}
通過避免替換按鍵事件中的所有文本並將其移至按下按鈕,模糊/散焦或其他某種方式,還有其他一些方法可以解決此問題。 這使您不必擔心插入符位置重置到最后的擔心。
我看到移到另一個事件以觸發文本更改的唯一真正的缺點就是它不是瞬時的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.