为什么我的文本区域返回值“ null”?

时间:2019-11-19 11:17:24

标签: javascript html dom textarea

在将文本区域定义为t时,我一直收到错误消息,但是t的值为null,我不知道为什么。我正在搜索的ID是正确的,但未返回任何内容。我试图让用户按下选项卡按钮时的文本区域跳出5个空格,而不是将焦点更改为另一个元素的默认操作。

let t = document.getElementById('txtEditor');

function addTextAreaListener() {
  t.addEventListener("keydown", taKeyPress);
}

function taKeyPress(e) {
  e.preventDefault();
  if (e.keyCode == "9") {
    t.value += "     ";
  }
}
addTextAreaListener();
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
  <link rel="stylesheet" href="mystyles.css">
  <script type="text/javascript" src="index.js"></script>


  <meta charset="utf-8">
  <title>Outline editor</title>
  <h1>Outline Editor</h1>
</head>

<body>
  <main class="buttons">
    <button type="button" name="btnSave">Save</button>
    <button type="button" name="btnTF">Text formatting</button>
    <button type="button" name="btnLoad">Load</button>

  </main>
  <main>
    <textarea id="txtEditor" rows="30" cols="80"></textarea>
  </main>
</body>

</html>

1 个答案:

答案 0 :(得分:4)

在执行该脚本时,仍不会创建id ='txtEditor'的元素。您最好使用“ onload”事件:

window.onload= function (){document.getElementById("txtEditor")...

或将脚本放入页面底部(波纹管主体)。