JS 新手。 我希望能够设置一个不显示用户输入的任何内容的文本框,而是在我隐藏在代码中的消息时显示一个字符。 我几乎可以正常工作,但在 JS 将其输出写入文本框后,HTML 输入似乎被绘制到文本框,留下一个烦人的字母。 由于这似乎是在执行函数后发生的,因此仅从 JS 中清除框似乎无济于事。非常感谢您的帮助。我是 JS 的新手,所以你的解释对我来说不会太简单!谢谢。这是我几乎可以工作的代码:
<!DOCTYPE html>
<html>
<body>
<p>In one sentence below, descibe free will.</p>
<input type="text" id="text" onkeydown="myFunction()">
<script>
var i = 0;
var will = "There is no free will.";
function myFunction() {
i = i + 1;
document.getElementById("text").value = will.substring(0, i) + " ";
}
</script>
</body>
</html>
最佳答案
方法有些不同,但您可以使用keyup
:
<p>In one sentence below, descibe free will.</p>
<input type="text" id="text" onkeyup="myFunction(event)">
<script>
var i = 0;
var will = "There is no free will.";
function myFunction(e) {
i = i + 1;
document.getElementById("text").value = will.substring(0, i) + " ";
}
</script>
或输入
:
<p>In one sentence below, descibe free will.</p>
<input type="text" id="text" oninput="myFunction(event)">
<script>
var i = 0;
var will = "There is no free will.";
function myFunction(e) {
i = i + 1;
document.getElementById("text").value = will.substring(0, i) + " ";
}
</script>
或keydown
+ event.preventDefault()
:
<p>In one sentence below, descibe free will.</p>
<input type="text" id="text" onkeydown="myFunction(event)">
<script>
var i = 0;
var will = "There is no free will.";
function myFunction(e) {
i = i + 1;
document.getElementById("text").value = will.substring(0, i) + " ";
e.preventDefault();
}
</script>
关于javascript - 输入类型 ="text"没有回显?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49825529/