首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JavaScript替换方法停止滚动到结束

JavaScript替换方法停止滚动到结束
EN

Stack Overflow用户
提问于 2016-09-29 08:17:46
回答 3查看 119关注 0票数 0

我试着用JavaScript替换方法来制作翻译器,它运行得很好。我的问题是如何在文本框中停止滚动到结束,因为当我在文本框中键入某项内容时,它将被替换,光标将转到word的末尾。因此,我不能在某些词之间替换或键入。

HTML代码:

代码语言:javascript
运行
AI代码解释
复制
<form name="inputform">
<input class="Search" type="text" autofocus name="searchbox" onKeyUp="transcrire()" id="Search">
</form>

JavaScript代码:

代码语言:javascript
运行
AI代码解释
复制
var inp;
function transcrire() {
inp = document.inputform.searchbox.value; 
inp = inp.replace(/a/g, "B");
inp = inp.replace(/i/g, "D");
document.inputform.searchbox.value=inp;
}

当我在文本框上输入"a“时,它将被替换为"B”。当我在文本框上输入"i“时,它将被替换为"D”。如果你能用JavaScript和JQuery给我答案的话。只能使用此文本框,不能使用其他按钮或其他东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-29 08:55:39

只需获得初始目标位置,并将位置设置为用regex替换后的位置。

代码语言:javascript
运行
AI代码解释
复制
var inp;
$('#Search').on('keyup',function(e){
  var target = e.target,
  position = target.selectionStart;

  inp = $(this).val(); 
  inp = inp.replace(/a/g, "B");
  inp = inp.replace(/i/g, "D");
  $(this).val(inp);
  $(this).get(0).setSelectionRange(position, position );
});
代码语言:javascript
运行
AI代码解释
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="inputform">
  <input class="Search" type="text" autofocus name="searchbox" id="Search">
</form>

票数 0
EN

Stack Overflow用户

发布于 2016-09-29 08:24:11

下面是我从这篇文章中得到的一个例子:Set keyboard caret position in html textbox

代码语言:javascript
运行
AI代码解释
复制
function setCaretPosition(elemId, caretPos) {
    var elem = document.getElementById(elemId);

    if(elem != null) {
        if(elem.createTextRange) {
            var range = elem.createTextRange();
            range.move('character', caretPos);
            range.select();
        }
        else {
            if(elem.selectionStart) {
                elem.focus();
                elem.setSelectionRange(caretPos, caretPos);
            }
            else
                elem.focus();
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2016-09-29 08:32:00

代码语言:javascript
运行
AI代码解释
复制
var inp;
$('#Search').on('keyup',function(e){
  inp = $(this).val(); 
  inp = inp.replace(/a/g, "B");
  inp = inp.replace(/i/g, "D");
  $(this).val(inp);
  $(this).get(0).setSelectionRange(0, 0);
});
代码语言:javascript
运行
AI代码解释
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="inputform">
<input class="Search" type="text" autofocus name="searchbox"  id="Search">
</form>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39775344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档