javascript - 删除输入中输入的最后一个字符 - Javascript

标签 javascript input onkeyup

我有以下输入:

<input id="myInput" type='text' onkeyup="validate(this)" />

在我的 .js 文件中,我有:

var input = document.getElementById("myInput");

input.addEventListener("keyup", function (e) {
    console.log(e.key);

});

function validate(characters) {
    console.log(characters.value);
}

我的问题是:我可以删除最后输入的字符对应的e.key吗?

Note:

Deleting the last character of characters is not a solution, since the character can be placed in any position.

最佳答案

您可以根据插入符的位置来做到这一点

const input = document.querySelector('input')

input.addEventListener("keyup", e => {
  const position = e.target.selectionStart
  input.value = input.value.substring(0, position-1) + input.value.substring(position+1)
})
<input type="text"/>

或者您可以跟踪更改

const input = document.querySelector('input')

let previousValue = input.value
input.addEventListener("keyup", e => {
  // if it matches your condition
  input.value = previousValue

  // reassign so that it works again next time
  previousValue = input.value
})
<input type="text"/>

当然,您需要向其中添加条件,否则您根本无法输入内容。并检查按下了哪些键,因为有些键不会添加字符(甚至删除一些字符)。您可能想查看“change”事件而不是“keyup”

关于javascript - 删除输入中输入的最后一个字符 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59595038/

相关文章:

javascript - 如何使用 javascript Google Contact API 以更详细的格式导入 gmail 联系人数据?

javascript - 在字符串中的字符之间添加空格

javascript - IFrame站点的访问URL

javascript - 使用事件 onkeyup() javascript 更改元素值

javascript - 在 jQuery 中使用 .keyup 计算字符的简单方法

Javascript 在 IE7、8、9 中返回控制台错误,但在所有其他浏览器中都能完美运行?

c - 用户输入到数组

c# - 如何向 inputRadio 添加 on change 事件?

javascript - 输入 - 移动浏览器上仅输入数字

javascript - 防止 JavaScript 中默认的 onkeyup 事件