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>
答案 0 :(得分:1)
方法有一点不同,但您可以使用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>
或input
:
<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>