输入类型=“文本”没有回声?

时间:2018-04-13 21:45:52

标签: javascript html echo

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>

1 个答案:

答案 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>