我有一个input用maxLength的1。我想,如果我键入另一个value(键)的电流 value(字母),输入内将与更换新的value(字母的键)。
我试过这样的事情:
container.addEventListener('keyup', function (e) {
var target = e.srcElement || e.target;
var letter = target.value;
var newLetter = letter.replace(/letter/g, letter);
letter.value = newLetter;
});
Run Code Online (Sandbox Code Playgroud)
您可以使用 更新输入框的值this.value并使用获取按下的键e.key。但是,如果按下,这将输入元键:
const container = document.getElementById('container');
container.addEventListener('keyup', function(e) {
this.value = e.key;
});Run Code Online (Sandbox Code Playgroud)
<input type="text" id="container" maxlength="1" />Run Code Online (Sandbox Code Playgroud)
元键的问题可以e.key通过使用正则表达式检查是否是字母/数字字母来解决:
const container = document.getElementById('container');
container.addEventListener('keyup', function({key}) {
if(/^[a-z0-9]$/i.test(key)) {
this.value = key;
}
});Run Code Online (Sandbox Code Playgroud)
<input type="text" id="container" maxlength="1" />Run Code Online (Sandbox Code Playgroud)