单击按钮时,Enter键不起作用

时间:2018-03-16 06:28:31

标签: javascript html css bootstrap-4

您是javascript和编程的初学者。 我刚刚使用html,css和javascript进行了实时对话。 我无法访问按钮标记中的回车键。

<script>
  function typo(){
    var currentText = document.getElementById("demo").innerHTML;
    enterkey();
    var x = '<p class=chatbox>' + document.getElementById("myText").value + '</p>';
    document.getElementById("myText").value = "";
    var y = document.getElementById("demo").innerHTML = currentText + x;
  }

  function enterkey() {
    var input = document.getElementById("myText");
    input.addEventListener("keyup", function(event) {
      event.preventDefault();
      if (event.keyCode === 13) {
        document.getElementById("btn-chat").click();
      }
    });
  }
</script>

<p id="demo"></p>
<input type="text" id="myText" value="">
<button onclick="typo()" class="btn btn-warning btn-sm" id="btn-chat">Send</button>

3 个答案:

答案 0 :(得分:0)

正在调用您的函数 enterkey()。我在启动该功能时输入了一个警报,以检查它是否正常工作。这是警报。 也许你想用enterkey()实现的目标无效。你需要检查一下。

&#13;
&#13;
<script>
  function typo(){
    var currentText = document.getElementById("demo").innerHTML;
    enterkey();
    var x = '<p class=chatbox>' + document.getElementById("myText").value + '</p>';
    document.getElementById("myText").value = "";
    var y = document.getElementById("demo").innerHTML = currentText + x;
  }

  function enterkey() {
  alert("check here");
    var input = document.getElementById("myText");
    input.addEventListener("keyup", function(event) {
      event.preventDefault();
      if (event.keyCode === 13) {
        document.getElementById("btn-chat").click();
      }
    });
  }
</script>

<p id="demo"></p>
<input type="text" id="myText" value="">
<button onclick="typo()" class="btn btn-warning btn-sm" id="btn-chat">Send</button>
&#13;
&#13;
&#13;

由于

答案 1 :(得分:0)

只有在您点击发送至少一次后,才能输入密钥。每次单击发送按钮时,您都不应将新的keyup事件绑定到文本字段。你可以这样做

&#13;
&#13;
<p id="demo"></p>
<input type="text" id="myText" value="">
<button onclick="typo()" class="btn btn-warning btn-sm" id="btn-chat">Send</button>

<script>
  function typo(){
    var currentText = document.getElementById("demo").innerHTML;
    //enterkey();
    var x = '<p class=chatbox>' + document.getElementById("myText").value + '</p>';
    document.getElementById("myText").value = "";
    var y = document.getElementById("demo").innerHTML = currentText + x;
  }

  // function enterkey() {
    var input = document.getElementById("myText");
    input.addEventListener("keyup", function(event) {
      event.preventDefault();
      if (event.keyCode === 13) {
        document.getElementById("btn-chat").click();
      }
    });
  //}
</script>
&#13;
&#13;
&#13;

这里我将脚本放在HTML元素下面,以确保document.getElementById("myText")返回加载的输入,然后绑定keyup事件。

答案 2 :(得分:0)

<p id="demo"></p>
<input type="text" id="myText" value="">
<button onclick="typo()" class="btn btn-warning btn-sm" id="btn-chat">Send</button>
<script>
  function typo(){
    var currentText = document.getElementById("demo").innerHTML;
    var x = '<p class=chatbox>' + document.getElementById("myText").value + '</p>';
    document.getElementById("myText").value = "";
    var y = document.getElementById("demo").innerHTML = currentText + x;
  }
  
  var input = document.getElementById("myText");
  input.addEventListener("keyup", function(event) {
    event.preventDefault();
    if (event.keyCode === 13) {
      document.getElementById("btn-chat").click();
    }
  });
</script>