javascript - 我如何模拟文本字段中的退格操作?

标签 javascript jquery html dom

按下按钮时,我只想在常规文本框中模拟一个“退格键”,删除光标左侧的字符。

Google 和各种论坛正在生成非常随机的结果。执行此操作的正确方法是什么?

最佳答案

这似乎适用于 Safari(可能也适用于 Firefox),但我还没有在 IE 中测试过它:

  function backspaceAtCursor(id)
  {
    var field = document.getElementById(id);

    if(field.selectionStart)
    {
      var startPos = field.selectionStart;
      var endPos = field.selectionEnd;

      if(field.selectionStart == field.selectionEnd)
      {
        field.value = field.value.substring(0, startPos - 1) + field.value.substring(endPos, field.value.length);

        field.focus(); 
        field.setSelectionRange(startPos - 1, startPos - 1); 
      }
      else
      {
        field.value = field.value.substring(0, startPos) + field.value.substring(endPos, field.value.length);

        field.focus(); 
        field.setSelectionRange(startPos, startPos); 
      }
    }
  }

使用:backspaceAtCursor('elementid')

关于javascript - 我如何模拟文本字段中的退格操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1735518/

相关文章:

jquery - 如何使用 jQuery 将全尺寸图像添加到网页中心?

css - 只有 div 中的第一个输入元素会受到影响,但不会影响其他元素

javascript - Codeigniter - 如何使用 javascript 变量重定向到 Controller ?($this->load->view() 不工作)

javascript - 单独的 Div 中的多个 Google 可视化图表实例

javascript - Windows Phone 8 和 Phonegap : how to close app with back button

jquery - 如何从可排序列表中删除动态添加的项目?

javascript - 如何将数据表 jQuery 与 ajax 结合使用?

javascript - 动态改变 <textarea > 大小、样式

javascript - 从点计算可能的线

javascript - 在 npm 安装/更新期间自动编译文件