javascript - 有人可以帮我解释为什么这个常量返回 null
问题描述
错误消息我不断收到 Uncaught TypeError: form.querySelector(...) is null 直到不久前一切正常,所以我必须更改一些我不知道的关于 file:///C:/Users/Ben /Documents/下载文本文件/v12/v12 test .html:35
<html>
<form name="addtext">
<table>
<tr>
<tr>
<th> Fan Delay </th>
<th><input id="fanDelay" type="text" name="fanDelay" value="0" /></th>
</tr>
</table>
<table class="center">
<th></th>
<th> <input type="submit" name="name" value="Save File" placeholder="File Name" /> </th>
</table>
</form>
</html>
<script>
/* Run script after DOMContentLoaded event to ensure form element is
present */
document.addEventListener("DOMContentLoaded", function() {
/* Obtain form element via querySelector */
const form = document.querySelector('form[name="addtext"]');
/* Bind listener to forms submit event */
form.addEventListener("submit", function(event) {
/* Prevent browsers default submit and page-reload behavior */
event.preventDefault();
var fanDelay = form.querySelector('select[name="fanDelay"]').value;
//
const text =
`TACm Settings
VER
PRO
dt: ${fanDelay}
`;
/* Create temporary link element and trigger file download */
const link = document.createElement("a");
const href = "data:text/plain;charset=utf-8," + encodeURIComponent(text);
link.setAttribute("href", href);
link.setAttribute("download", "usb.txt");
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
});
});
</script>
解决方案
我认为错误来自这里form.querySelector('select[name="fanDelay"]').value
您正在使用<input>
标签,所以只需将其更改为此
form.querySelector('input[name="fanDelay"]').value
推荐阅读
- java - 服务器/应用程序启动时从某些数据库表中缓存和加载数据的区别
- regex - 如何以类型安全的方式进行破坏?
- python - 内联显示多个图像
- javascript - 每个页面的 Gatsby 配置文件
- google-chrome - 手动更改 chrome 通知设置
- chromium - Google Chrome 开发者工具 - 这是什么?
- asp.net-mvc-5 - 使用 viewdata 将数据从控制器传递到视图
- makefile - 如何在c中使用make文件创建可执行文件
- mysql - 存储过程插入查询
- docker - 使用 Nginx 对 VueJS 进行 Dockerizing 无法使用 http://localhost 访问后端应用程序