开发者问题收集

javascript:未捕获的类型错误:无法设置 null 的属性“disabled”

2018-08-10
35743

我想知道为什么我的脚本没有采用 id 值吗?

我在一个名为 test.js 的文件的单独文件夹中使用了此代码 这是我的起始代码。

var myInput = document.getElementById("newPass");
var confInput = document.getElementById("confpsw");
var letter = document.getElementById("letter");
var capital = document.getElementById("capital");
var number = document.getElementById("number");
var length = document.getElementById("length");
var special = document.getElementById("special");    
document.getElementById("Button").disabled = true;

我的视图代码是..

<button id="Button" class="btn btn-lg btn-primary btn-block btn-signin" type="submit">Submit</button>

我得到了这样的错误...

未捕获的 TypeError:无法设置 null 的属性“disabled”

为什么我的脚本在 cshtml 中不起作用?

3个回答

似乎代码在 DOM 准备就绪之前就运行了。请尝试使用 DOMContentLoaded

The DOMContentLoaded event is fired when the initial HTML document has been completely loaded and parsed, without waiting for stylesheets, images, and subframes to finish loading.

document.addEventListener("DOMContentLoaded", function(event) {
  document.getElementById("Button").disabled = true;
});
Mamun
2018-08-10

检查以下代码可能会为您提供帮助。由于您需要在文档内容加载的事件上附加事件许可程序。

279824276
2018-08-10

这与 cshtml 无关。

如果您将获取 Dom 元素的行放在标题中,由于 DOM 尚未加载,因此它将不起作用。

将 javascript 放在正文(脚本或代码)的末尾,或者在浏览器加载 DOM 后使用 DOMEvent 运行 JS。

在 JS 中: https://developer.mozilla.org/fr/docs/Web/Events/load

在 JQuery 中: https://api.jquery.com/ready/

Zysce
2018-08-10