javascript - 使用替换时停止光标与值重叠

标签 javascript jquery html

我想知道当我将光标放在值中间时如何防止重叠值的行为。之后,我尝试将双空格替换为一个空格,但它与我的文本值重叠,同时将双空格替换为单空格。

这是代码示例。有什么建议可以阻止这种行为吗?

 $(document).ready(function() {
   $("#txtInput").keyup(
     function(event) {
     
       var position = event.target.selectionStart;
       event.target.value = event.target.value.replace(/  +/g, ' ');
       event.target.selectionEnd = position;
     
   });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="txtInput" type="text" value=""/>

最佳答案

你可以检查是否真的修改了字符串的长度,如果修改了则需要从位置中减去1。

 $(document).ready(function() {
   $("#txtInput").keyup(
     function(event) {
       var len = event.target.value.length;
       var position = event.target.selectionStart;
       event.target.value = event.target.value.replace(/  +/g, ' ');
       if (len !== event.target.value.length) --position;
       event.target.selectionEnd = position;
     
   });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="txtInput" type="text" value=""/>

关于javascript - 使用替换时停止光标与值重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44210185/

相关文章:

javascript - 使用监听器时无法传递 "this"

html - 移动设备上的 CSS 不工作

javascript - 如何在 Javascript/jQuery 中动态切片数组?

javascript - 在成功函数之外使用通过 AJAX 检索的 JSON 数据

javascript - 获取文本框的值作为表列的子项

javascript - 在 3D 图中用plotly 勾选vals

javascript - 如何在季度日期选择器中启用初始值突出显示

html - 从两侧 html css 围绕图像/形状包装两列文本

javascript - 使用 div :title tag attribute instead of a:href attribute to toggle divs

javascript - jQuery .text() 和 .innerHTML 在 IE 中不起作用